Исследование HashMap по умолчанию в Java - PullRequest
6 голосов
/ 06 ноября 2008

Что Java использует в качестве метода проверки по умолчанию для HashMap? Это линейно? Цепочка или что-то еще?

1 Ответ

8 голосов
/ 06 ноября 2008

Похоже, я прикован цепью. Код: (ссылка)

...
724         /**
725          * Create new entry.
726          */
727         Entry(int h, K k, V v, Entry n) {
728             value = v;
729             next = n;
730             key = k;
731             hash = h;
732         }
...

...
795     void addEntry(int hash, K key, V value, int bucketIndex) {
796     Entry e = table[bucketIndex];
797         table[bucketIndex] = new Entry(hash, key, value, e);
...

То есть, захватите запись в bucketIndex, а затем замените ее новой записью, которая имеет в качестве поля "next" запись, которая уже была там (то есть зацеплена).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...