HashMap在内部使用LinkedList

Lea*_*ner 14 java hashmap

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-它是一个独立的(简单)的实施只是地图.