Найти тему
KOTLIN_IT

Урок №52 по Котлин. Set

Оглавление

Интерфейс Set представляет неупорядоченный набор объектов, который хранит только уникальные объекты.

Интерфейс Set представляет неизменяемый (immutable) набор. Set расширяет интерфейс Collection и соответственно все его методы.

Для создания неизменяемого (immutable) набора используется функция setOf().

-2

Set реализует метод toString таким образом, что возвращает в удобочитабельном виде все элементы в виде строки

Причем, поскольку Set представляет набор уникальных объектов, то даже если мы передадим через функцию setOf() повторяющиеся значения, то в наборе все равно будут только уникальные значения:

-3

Методы Set

Рассмотрим некоторые специфичные операции Set. Прежде всего это методы для операций с множествами:

  • union: объединение множеств
  • intersect: пересечение множеств (возвращает элементы, которые есть в обоих множествах)
  • subtract: вычиьтание множеств (возвращает элементы, которые есть в первом множестве, но отсутствуют во втором)

Хотя эти операции могут применяться и к спискам List, но возвращают они всегда объект Set и более уместны для множеств Set.

-4

Изменяемые коллекции

Изменяемые (mutable) наборы представлены интерфейсом MutableSet, который расширяет интерфейсы Set и MutableCollection, соответственно поддерживает методы по изменению коллекции.

Для создания изменяемых (mutable) наборов применяется функция mutableSetOf().

-5

Интерфейс MutableSet реализуется следующими типами изменяемых наборов:

  • LinkedHashSet: объединяет возможности хеш-таблицы и связанного списка. Создается с помощью функции linkedSetOf()
  • HashSet: представляет хеш-таблицу. Создается с помощью функции hashSetOf()
-6

Изменение набора с помощью MutableSet:

-7