Назад к вопросам
IT One
Senior
7
Чем отличается HashMap от LinkedHashMap?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Основные отличия между HashMap и LinkedHashMap:
-
Порядок элементов:
HashMapне гарантирует порядок элементов при итерации.LinkedHashMapсохраняет порядок вставки элементов (или порядок доступа, если включён access-order).
-
Производительность:
HashMapчуть быстрее за счёт отсутствия дополнительной структуры для порядка.LinkedHashMapчуть медленнее из-за поддержки связного списка для порядка.
-
Использование:
HashMapподходит, когда порядок не важен.LinkedHashMapудобен, когда нужен предсказуемый порядок обхода, например, для кэшей.
Пример использования LinkedHashMap для кэша с удалением старых элементов:
LinkedHashMap<K, V> cache = new LinkedHashMap<K, V>(initialCapacity, loadFactor, true) {
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > MAX_ENTRIES;
}
};