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 с порядком, объединение и пересечение множеств.