Map是一种映射表,也称为关联数组,它已键值对的方式来存储数据,所有你可以使用键来查找到值。在Map集合中,键和值都可以是引用类型的,键一般不重复,如果重复,则后一个添加的键值对会覆盖已存在集合中的那个键值对,所有Map中一个键所对应的值是唯一的。
散列码就是将键的hashCode产生的值经过一系列处理后的int数值,而这些数值就是数组的索引。散列就是在这些以散列码为索引的每一个桶位上的元素所组成的一个数组,散列的分布是由散列码来决定的。
在HashMap中通过将键的hashCode方法产生的hash值进行二次哈希,并模与散列表的长度以保证每一个元素都能正确的放入到集合的桶位中。经过计算后会产生相同的散列码,在通过查找元素时,也是以同样的方法计算key的哈希值,来缩小要查询的范围,从而实现快速查询,所以HashMap中元素的存储和查询的开销是固定的。HshMap中允许存储null键,而null键总是位于散列表的第一个位置。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |