Gymterview
junior

Чем LinkedHashSet отличается от HashSet

LinkedHashSet расширяет HashSet, используя LinkedHashMap вместо HashMap в качестве внутренней структуры. Единственное отличие — гарантированный порядок итерации, совпадающий с порядком добавления элементов (insertion-order).

При повторном добавлении элемента, который уже есть в LinkedHashSet, порядок итерации не изменяется — элемент остается на своей исходной позиции. Производительность LinkedHashSet незначительно ниже HashSet из-за накладных расходов на поддержание двусвязного списка, но все основные операции по-прежнему O(1).

LinkedHashSet полезен, когда нужна уникальность элементов (как в Set) и при этом важен порядок их добавления (например, для воспроизводимого вывода или сохранения порядка обработки).

На собеседовании: ответ — LinkedHashSet сохраняет insertion-order. Объясните, что внутри LinkedHashMap с двусвязным списком.