Как я понимаю, LinkedHashMap расширяет HashMap и LinkedHashMap.Entry также расширяет HashMap.Entry.Понимание acessOrder LinkedHashMap Реализация в java
LinkedHashMap имеет две основные атрибуты 1) заголовка которое является LinkedHashMap.Entry узел. и 2) унаследовал таблицу, который HashMap.Entry [] массива. Теперь стол в LinkedHashMap присваивается массив LinkedHashMap.Entry во время выполнения, и это заботятся ниже способом:
/**
* This override differs from addEntry in that it doesn't resize the
* table or remove the eldest entry.
*/
void createEntry(int hash, K key, V value, int bucketIndex) {
HashMap.Entry<K,V> old = table[bucketIndex];
Entry<K,V> e = new Entry<>(hash, key, value, old);
table[bucketIndex] = e;
e.addBefore(header);
size++;
}
Первые три строки метода фактически преобразует HashMap .Entry до LinkedHashMap.Entry также содержит ссылки после и перед тем Входа в пути таким образом, что перед тем из заголовка указывает на последний элемент в порядке и в прошлом элемента после указывает на заголовок формирования круга.
Теперь, когда мы создаем экземпляр либо Карт (с помощью нового конструктора), память не выделяется для атрибута таблица, как его просто инициализируется пустой стол.
Map<String, String> linkedHashMap = new LinkedHashMap<String, String>();
Теперь давайте говорить, что мы делаем наши путы: -
linkedHashMap.put("a", "A");
linkedHashMap.put("b", "B");
linkedHashMap.put("c", "C");
После этих заявлений нашей структуры LinkedHashMap данные (таблицы массива инициализируются после того, как первый же) будет выглядеть как в ПОС . Я обозначил элементы a, b и c для удобства использования. Я понимаю, что реальный порядок не будет таким. Я считаю эту структуру данных довольно сложной, так много ссылок. Он имеет двойной связанный список, который поддерживается совершенно по-разному и для разных целей, а также для одиночного связанного списка для обычного хэш-карты, и это тоже в том же Входе. Правильно ли я понимаю?
Спасибо за ссылку JavaArticles. Это свидетельствует (хотя и на высоком уровне), что я сделал из проверки кода. И да, я не хочу, чтобы структура данных была сложной. Сначала я понял, что это сложно: и я считаю, что я не один в этом. – nanosoft