Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

LinkedHashSet

Множество, которое помнит порядок добавления элементов.

Доступно с: Java 1.4

Синтаксис

public class LinkedHashSet<E> extends HashSet<E> implements SequencedSet<E>

Примеры

Удаление повторов с сохранением порядка:

void main() {
    List<String> visits = List.of("home", "cart", "home", "pay", "cart");
    Set<String> pages = new LinkedHashSet<>(visits);
    IO.println(pages);
}

Результат:

[home, cart, pay]

Первый и последний элемент (Java 21):

void main() {
    var set = new LinkedHashSet<>(List.of(3, 1, 2));
    IO.println(set.getFirst() + " " + set.getLast());
    IO.println(set.reversed());
}

Результат:

3 2
[2, 1, 3]

Примечания

Работает почти так же быстро, как HashSet, но расходует чуть больше памяти. Повторное добавление существующего элемента не меняет его позицию. С Java 21 реализует SequencedSet, поэтому есть getFirst(), getLast() и reversed().

См. также

  • HashSet — Множество без повторов на основе хеш-таблицы; порядок не гарантирован.
  • TreeSet — Множество, которое хранит элементы в отсортированном порядке.
  • List.getFirst() — Возвращает первый или последний элемент упорядоченной коллекции.

Вопросы и ответы по теме

В учебнике

  • Множества: Set — Множества в Java: HashSet без повторов, LinkedHashSet и TreeSet с порядком, объединение и пересечение множеств.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.