HashMap中key为null时存到哪里去了

来源:互联网 发布:国产女装品牌知乎 编辑:程序博客网 时间:2024/05/30 04:26

hashMap是根据key的hashCode来寻找存放位置的,那当key为null时, 怎么存储呢?

在put方法里头,其实第一行就处理了key=null的情况。 

if (key == null)      return putForNullKey(value);  //那就看看这个putForNullKey是怎么处理的吧。  private V putForNullKey(V value) {      for (Entry<K,V> e = table[0]; e != null; e = e.next) {          if (e.key == null) {              V oldValue = e.value;              e.value = value;              e.recordAccess(this);              return oldValue;          }      }      modCount++;      addEntry(0, null, value, 0);      return null;  }  
可以看到,前面那个for循环,是在talbe[0]链表中查找key为null的元素,如果找到,则将value重新赋值给这个元素的value,并返回原来的value。
如果上面for循环没找到则将这个元素添加到talbe[0]链表的表头。 


转载地址:http://blog.csdn.net/guogaoan/article/details/38385543

原创粉丝点击