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;
}
Những gì tôi biết là, nếu bạn muốn có được một đối tượng từ HashMap
, trước hết nó tìm kiếm xô băm dựa trên hashcode giá trị/băm và sau đó duyệt qua LinkedList
trong hashbucket đó (giả sử các đối tượng diff có cùng mã băm, do đó trong cùng một nhóm băm).HashMap sử dụng LinkedList nội
Nhưng sau khi nhìn vào mã ở trên, tôi không thể hiểu được khi nó lặp qua LinekedList (và ở đâu là LinkedList)