Я пытаюсь понять внутреннюю работу linkedhashmap.Как работает метод put() LinkedHashMap?
Итак, когда мы вызываем put (карта, ключ) связанногоhashmap. Внутри он вызывает [createEntry][1]
.
void createEntry(int hash, K key, V value, int bucketIndex) {
440 HashMap.Entry<K,V> old = table[bucketIndex];
441 Entry<K,V> e = new Entry<K,V>(hash, key, value, old);
442 table[bucketIndex] = e;
443 e.addBefore(header);
444 size++;
445 }
Здесь я не могу понять использование старой переменной.
Почему новая запись добавляется перед заголовком. Он должен быть добавлен в конец linkedhashmap.
Может кто-нибудь объяснить этот код.
Не могли бы вы немного объяснить о введении ключевого значения в linkedhashmap? Например, для первого: он находит ведро, используя хэш ключа. Я не могу понять следующий шаг. – Thinker
Хеш получен из ключа. Если вход уже не введен, он добавляется. Если есть запись, на ключ вызывается 'equals (Object)'. Если это не соответствие, добавляется новая запись в начало связанного списка. –
Какое использование этого старого ключевого слова в коде. Старая запись переписывается (строка: 442) новой записью. – Thinker