HashMap类中put方法源码如何实现?

更新于
2026-10-12 08:20:32
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计167个文字,预计阅读时间需要1分钟。

HashMap类中put方法源码如何实现?

plaintextgistfile1.txt: public V put(K key, V value) { // 如果Key为null,调用putForNullKey方法进行特殊处理 if (key==null) { return putForNullKey(value); } // 根据key的keycode计算Hash值 int hash=hash(key.hashCode()); // 搜索指定hash值的位置 ...}

HashMap类中put方法源码如何实现?

gistfile1.txt

public V put(K key,V value) { //如果Key为null,则调用putForNullKey方法进行处理 if(key==null) { return putForNullKey(value); } //根据key的keycode计算Hash值 int hash=hash(key.hashcode()); //搜索指定hash值在对应table中的索引 int i=indexFor(hash,table.length); //如果i索引出的Entry不为null,通过不断循环遍历e元素的下一个元素 for(Entry e=table[i];e!=null;e=e.next) { Object k; //找到指定key与需要放入的key相等(hash值相等,通过equals比较返回true) if(e.hash==hash&&((k=e.key)==key||k.equals(k))) { V oldValue=e.value; e.value=value; e.recordAccess(this); return oldValue; } //如果i索引出的Entry为null,表明此处没有Entry modCount++; //将key,value都添加到i索引处 addEntry(hash,key,value,i); return null; } }

标签:源码gistf

本文共计167个文字,预计阅读时间需要1分钟。

HashMap类中put方法源码如何实现?

plaintextgistfile1.txt: public V put(K key, V value) { // 如果Key为null,调用putForNullKey方法进行特殊处理 if (key==null) { return putForNullKey(value); } // 根据key的keycode计算Hash值 int hash=hash(key.hashCode()); // 搜索指定hash值的位置 ...}

HashMap类中put方法源码如何实现?

gistfile1.txt

public V put(K key,V value) { //如果Key为null,则调用putForNullKey方法进行处理 if(key==null) { return putForNullKey(value); } //根据key的keycode计算Hash值 int hash=hash(key.hashcode()); //搜索指定hash值在对应table中的索引 int i=indexFor(hash,table.length); //如果i索引出的Entry不为null,通过不断循环遍历e元素的下一个元素 for(Entry e=table[i];e!=null;e=e.next) { Object k; //找到指定key与需要放入的key相等(hash值相等,通过equals比较返回true) if(e.hash==hash&&((k=e.key)==key||k.equals(k))) { V oldValue=e.value; e.value=value; e.recordAccess(this); return oldValue; } //如果i索引出的Entry为null,表明此处没有Entry modCount++; //将key,value都添加到i索引处 addEntry(hash,key,value,i); return null; } }

标签:源码gistf