hashmap实现的数据结构
1:Map可以出现在k与v的映射中,v为null的情况, 所以containsKey出现更加必要
Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断,
所以 get返回null的话可能是key不存在,也可能是key对应的value为null
2、http://blog.csdn.net/glory1234work2115/article/details/50825503
上面分析了null key的插入过程,其实也包括了所有键值插入的过程。
1.先在table[0]的链表中寻找null key,如果有null key就直接覆盖原来的value,返回原来的value;
2.如果在table[0]中没有找到,就进行头插,但是要先判断是否要扩容,需要就扩容,然后进行头插,此时table[0]就是新插入的null key Entry了。
怎么让hashmap分布的均匀:重写hashCode()方法
阅读(560) | 评论(0) | 转发(0) |