Класс LinkedHashSet

Класс LinkedHashSet представляет собой реализацию интерфейса MutableSet, которая сохраняет порядок вставки элементов и гарантирует уникальность элементов. В первый параметр типа мы передаем тип элементов множества, например String, Int и другие.

Импорт

kotlinimport kotlin.collections.LinkedHashSet

Синтаксис

kotlinclass LinkedHashSet<E> : MutableSet<E>
kotlinfun <E> linkedSetOf(): LinkedHashSet<E>
kotlinfun <E> linkedSetOf(vararg elements: E): LinkedHashSet<E>

Пример

Создадим пустое множество типа LinkedHashSet для хранения строк:

kotlinval set: LinkedHashSet<String> = linkedSetOf()
println(set)

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

kotlinLinkedHashSet []

Пример

Создадим множество типа LinkedHashSet с начальными элементами и проверим сохранение порядка:

kotlinval set: LinkedHashSet<String> = linkedSetOf("c", "a", "b", "d", "e")
println(set)

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

kotlinLinkedHashSet [c, a, b, d, e]

Пример

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

kotlinval set = linkedSetOf<Int>()

set.add(3)
set.add(1)
set.add(2)
set.add(5)
set.add(4)

println(set)

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

kotlinLinkedHashSet [3, 1, 2, 5, 4]

Пример

Попробуем добавить дубликаты в LinkedHashSet и убедимся, что они игнорируются:

kotlinval set = linkedSetOf("a", "b", "c")

set.add("a")
set.add("b")
set.add("d")

println(set)

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

kotlinLinkedHashSet [a, b, c, d]

Пример

Удалим элемент из LinkedHashSet и проверим результат:

kotlinval set = linkedSetOf(1, 2, 3, 4, 5)

set.remove(3)

println(set)

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

kotlinLinkedHashSet [1, 2, 4, 5]

Пример

Проверим наличие элемента в LinkedHashSet:

kotlinval set = linkedSetOf("a", "b", "c", "d", "e")

val containsB = set.contains("b")
val containsF = set.contains("f")

println("Contains 'b': $containsB")
println("Contains 'f': $containsF")

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

kotlinContains 'b': true
Contains 'f': false

Пример

Итерируемся по LinkedHashSet и убеждаемся, что порядок элементов сохраняется:

kotlinval set = linkedSetOf("c", "a", "b", "e", "d")

for (item in set) {
  print("$item ")
}

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

kotlinc a b e d 

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

  • интерфейс Set,
    который представляет базовый интерфейс для множеств
  • интерфейс MutableSet,
    который представляет изменяемое множество
  • класс HashSet,
    который представляет множество без сохранения порядка
  • класс TreeSet,
    который представляет отсортированное множество