Множество представляет собой неупорядоченную коллекцию уникальных значений одного типа. Оно может быть чрезвычайно полезно, если нужно, чтобы элемент не появлялся в коллекции более одного раза, и когда порядок элементов не имеет значения.
Содержание статьи
- Создание множества
- Множество из массивов
- Доступ к элементам множества в Kotlin
- Итерация по множествам
- Добавление элементов в множества
- Удаление элементов из множества
Создание множества в Kotlin
Вы можете объявить множество, используя функцию setOf()
из стандартной библиотеки Kotlin:
1 2 3 4 | fun main() { val names = setOf("Anna", "Brian", "Craig", "Anna") println(names) // Вывод: [Anna, Brian, Craig] } |
Можно создать пустое множество, вызвав её конструктор:
1 2 3 | fun main() { val hashSet = HashSet<Int>() } |
Множество из массивов в Kotlin
Множество можно создать из массивов. Рассмотрим пример:
1 2 3 | fun main() { val someArray = arrayOf(1, 2, 3, 1) } |
Можно создать множество из данного массива, передав массив в функцию mutableSetOf
стандартной библиотеки и используя оператор распространения *
:
1 2 3 4 | fun main() { val someArray = arrayOf(1, 2, 3, 1) var someSet = mutableSetOf(*someArray) } |
При создании множества — массив разбивается на его элементы. Вам не нужно объявлять переменную как MutableSet<Int>
, поскольку тип выводится из аргумента, переданного в функцию.
Чтобы увидеть наиболее важную особенность множества в действии, выполним вывод на экран только что созданного множества:
1 2 3 4 5 6 | fun main() { val someArray = arrayOf(1, 2, 3, 1) var someSet = mutableSetOf(*someArray) println(someSet) # Вывод: [1, 2, 3] } |
Даже если вы создали множество с двумя экземплярами значения 1
, значение появляется только один раз. Помните, что значения множества должны быть уникальными.
Доступ к элементам множества в Kotlin
Для проверки существования определенного элемента в множестве можно использовать метод contains()
:
1 2 3 4 5 6 7 | fun main() { var someSet = setOf(1, 2, 3) if (someSet.contains(1)) { println("Да, такой эллемент есть.") } } |
Для проверки также можно использовать параметр in
:
1 2 3 4 5 6 7 8 9 | fun main() { var someSet = setOf(1, 2, 3) if (4 in someSet) { println("Да, такой эллемент есть.") } else { println("Нет, такого эллемента не существует...") } } |
Также можно использовать методы first()
и last()
, которые возвращают первый и последний элемент из множества. Однако, так как множества являются неупорядоченными, вы не всегда будете знать, какой элемент получите.
Итерация по множествам в Kotlin
Вы можете выполнять итерации по множеству с помощью цикла for так же, как и для других коллекций:
1 2 3 4 5 6 7 | fun main() { var someSet = setOf(1, 2, 3) for (item in someSet) { println(item) } } |
Добавление элементов в множества
Для добавления элементов в множество можно использовать метод add()
. Если элемент уже существует, метод ничего не сделаем.
1 2 3 4 5 6 7 | fun main() { var someSet = mutableSetOf(1, 2, 3) someSet.add(5) println(someSet) // Вывод: [1, 2, 3, 5] } |
Удаление элементов из множества
Удалить элемент из множества можно следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 | fun main() { var someSet = mutableSetOf(1, 2, 3, 5) val toDelete = 1 val removedOne = someSet.remove(toDelete) if (removedOne) { println("Элемент $toDelete успешно удален!") println(someSet) } else { println("Элемент $toDelete не найден...") } } |
Метод remove()
возвращает true, если элемент был удален из множества, и false
если такой элемент не был найден — следовательно и не получилось удалить.
Ключевые аспекты
- Множества — это неупорядоченные коллекции уникальных значений одного типа.
- Множества наиболее эффективны, когда вам нужно знать, содержится ли что-то в коллекции или нет.