РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
446 of 1163 menu

Класс LinkedHashSet

Класс LinkedHashSet - это коллекция, которая сочетает в себе быстрый доступ к элементам (как HashSet) и предсказуемый порядок обхода (как List). В отличие от обычного HashSet, LinkedHashSet запоминает порядок, в котором элементы были добавлены в коллекцию. Это достигается за счет использования двусвязного списка, который пронизывает все элементы. Класс наследуется от HashSet и реализует интерфейс Set. Основное преимущество - итерация по элементам происходит в том порядке, в котором они были вставлены. Это делает класс идеальным выбором, когда важен порядок элементов, но при этом необходимо исключить дубликаты.

Синтаксис

LinkedHashSet<Тип> имя = new LinkedHashSet<>();

Пример

Давайте создадим LinkedHashSet и добавим в него несколько элементов, а затем выведем их на экран, чтобы убедиться в сохранении порядка:

import java.util.LinkedHashSet; public class Main { public static void main(String[] args) { LinkedHashSet<String> set = new LinkedHashSet<>(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); System.out.println(set); } }

Результат выполнения кода:

[a, b, c, d]

Пример

Давайте попробуем добавить дубликат элемента в LinkedHashSet и посмотрим, что произойдет:

import java.util.LinkedHashSet; public class Main { public static void main(String[] args) { LinkedHashSet<String> set = new LinkedHashSet<>(); set.add("a"); set.add("b"); set.add("a"); set.add("c"); System.out.println(set); } }

Результат выполнения кода:

[a, b, c]

Как видите, дубликат не был добавлен, а порядок элементов сохранился.

Пример

Давайте проверим наличие элемента в LinkedHashSet с помощью метода contains:

import java.util.LinkedHashSet; public class Main { public static void main(String[] args) { LinkedHashSet<Integer> set = new LinkedHashSet<>(); set.add(1); set.add(2); set.add(3); boolean res = set.contains(2); System.out.println(res); } }

Результат выполнения кода:

true

Пример

Давайте удалим элемент из LinkedHashSet и проверим итоговый порядок:

import java.util.LinkedHashSet; public class Main { public static void main(String[] args) { LinkedHashSet<String> set = new LinkedHashSet<>(); set.add("a"); set.add("b"); set.add("c"); set.remove("b"); System.out.println(set); } }

Результат выполнения кода:

[a, c]

Смотрите также

  • класс Set,
    который представляет собой базовый интерфейс для множеств
  • класс TreeSet,
    который хранит элементы в отсортированном порядке
  • метод add,
    который добавляет элемент в множество
  • метод contains,
    который проверяет наличие элемента в множестве
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить