Класс HashSet

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

Импорт

kotlinimport kotlin.collections.HashSet

Синтаксис

kotlinclass HashSet<E> : AbstractMutableSet<E>, Serializable
kotlinfun <E> hashSetOf(): HashSet<E>
kotlinfun <E> hashSetOf(vararg elements: E): HashSet<E>

Пример

Создадим пустое множество с помощью функции hashSetOf:

kotlinval set: HashSet<String> = hashSetOf()
println(set)

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

kotlinHashSet []

Пример

Создадим множество с начальными элементами:

kotlinval set: HashSet<Int> = hashSetOf(1, 2, 3, 4, 5)
println(set)

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

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

Пример

Попробуем добавить дубликаты в множество:

kotlinval set = hashSetOf('a', 'b', 'c', 'a', 'b')
println(set)

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

kotlinHashSet ['a', 'b', 'c']

Пример

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

kotlinval set = hashSetOf(10, 20, 30, 40, 50)
val containsTwenty = set.contains(20)
val containsSixty = set.contains(60)
println("Contains 20: $containsTwenty")
println("Contains 60: $containsSixty")

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

kotlinContains 20: true
Contains 60: false

Пример

Добавим и удалим элементы из mutable HashSet:

kotlinval set = hashSetOf(1, 2, 3)
set.add(4)
set.add(5)
set.remove(2)
println(set)

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

kotlinHashSet [1, 3, 4, 5]

Пример

Проверим размер множества и пустое ли оно:

kotlinval set1 = hashSetOf(1, 2, 3)
val set2 = hashSetOf<Int>()
println("Set1 size: ${set1.size}, empty: ${set1.isEmpty()}")
println("Set2 size: ${set2.size}, empty: ${set2.isEmpty()}")

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

kotlinSet1 size: 3, empty: false
Set2 size: 0, empty: true

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

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