LinkedHashMap и внутреннее устройство

136
11 января 2021, 10:00

Почему говорят, что LinkedHashMap это хеш-таблица + LinkedList, если в исходниках в идее смотрю, внутри LinkedHashMap нет LinkedList?

Answer 1

Там не используется LinkedList напрямую, речь больше про концептуальную схожесть. В частности, посмотрите на эту строку в исходниках.

void createEntry(int hash, K key, V value, int bucketIndex) {
    // ...
    e.addBefore(header);
    // ...
}

Вот именно e.addBefore(header); внутри перелинковывает элементы:

private void addBefore(Entry<K,V> existingEntry) {
    after  = existingEntry;
    before = existingEntry.before;
    before.after = this;
    after.before = this;
}

Это похоже на перелинковку элементов в LinkedList, поэтому так и называют.

READ ALSO
Асинхронные запросы на сервер с ID

Асинхронные запросы на сервер с ID

Стоит такая задачаЕсть сервер, доступ к нему осуществляется по IP адресу через HTTP, он запрашивает логин-пароль

116
Как организовать доступ из Maven-проекта к зависимости, которая постоянно модифицируется и находится в другой директории?

Как организовать доступ из Maven-проекта к зависимости, которая постоянно модифицируется и находится в другой директории?

Предположим, что Maven-проекты Project1 (допустим, находящийся в D:\IntelliJ_IDEA\Project1\src\main\java\dev\example1\Mainjava) и Project2 (находится D:\IntelliJ_IDEA\Project2\src\main\java\dev\example2\Main

139
Не работает mouseleave после mouseenter на SVG USE символе

Не работает mouseleave после mouseenter на SVG USE символе

Мне нужно чтобы при mouseenter символ в SVG менялся с #dot на #dot2И при mouseleave - наоборот

101
Бесконечное каррирование

Бесконечное каррирование

Есть вот такой кодМне надо переписать его так чтобы он например при вызове console

124