Sobes.tech
Назад к вопросам
Senior
7

Чем отличается HashMap от LinkedHashMap?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

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;
    }
};