散列的价值在于速度.我们使用数组来保存键的信息,这个信息并不是键本身,而是通过键对象生成一个数字(散列码),作为数组下标.由于数组的容量是固定的,而散列容器的大小是可变的,所以不同的键可以产生相同的数组下标(散列码).也就是说,可能会有冲突(当然也有特例,比如EnumMap和EnumSet).所以,数组的值存放着一个保存所有相同散列码的值的list(引用).然后对list中的值使用equals进行线性查询.如果散列函数设计的比较好的话,数组的每个位置只有较少的值,并且浪费空间也小.于是,查询过程…