Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1603456
  • 博文数量: 695
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4027
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-20 21:22
文章分类

全部博文(695)

文章存档

2018年(18)

2017年(74)

2016年(170)

2015年(102)

2014年(276)

2013年(55)

分类: Java

2017-11-07 11:31:05

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()方法


阅读(506) | 评论(0) | 转发(0) |
0

上一篇:Linux 面试常问命令

下一篇:新浪面试java

给主人留下些什么吧!~~