Java中float,double为什么会丢失精度。
摘要:Effective JavaItem 48: Avoid float and double if exact answers are required对于精确计算不提倡使用float,double,因为会丢失精度,这是为什么呢? 让我细细说来1. 什么是浮点数?表示一个数字如100.2,可以是Fix...
阅读全文
如何使用EnumSet实现基于bit field的enum set?
摘要:如果我们在使用有一个枚举类型时,每次会用到其一项或多项(也就是enum set)时,会怎么做呢?在Java没有引入EnumSet之前,有一种叫int enum pattern(assigning a different power of 2 to each constant)的做法,例如一个字体的s...
阅读全文
Hash算法,及HashMap使用
摘要:为什么要Hash?哈希表是基于数组实现的,哈希算法就是如何将键值(key)转换成数组小标的方法,哈希化可以提供非常高的操作(插入、删除、查询)效率,因为对有序数组的查询,即使是二分查找也只能做到O(logN),因为哈希可以直接将要查询的key转化为数组小标,所以可以达到O(1)的时间级。Hash算法...
阅读全文