public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我所了解的是,如果你想获得一个物体的HashMap,首先它通过搜索基于哈希码/散列值,然后遍历散列桶LinkedList在同在hashbucket(假设DIFF对象具有相同的散列码,从而哈希桶).
但在查看上面的代码之后,我无法理解何时迭代LinekedList(以及LinkedList在哪里)
Jon*_*eet 22
存储桶是有效的链表.该table阵列是一个数组Entry元素,每Entry一个链表中,每个条目都知道在列表中的下一个,直到你到达终点时,next引用为null.在for循环中,您已经证明在链表迭代.
这不是一个LinkedList在一个java.util.LinkedList-它是一个独立的(简单)的实施只是地图.
| 归档时间: |
|
| 查看次数: |
12293 次 |
| 最近记录: |