Множество представляет собой неупорядоченную коллекцию уникальных значений одного типа. Оно может быть чрезвычайно полезно, если нужно, чтобы элемент не появлялся в коллекции более одного раза, и когда порядок элементов не имеет значения.
Содержание статьи
- Создание множества
- Множество из массивов
- Доступ к элементам множества в 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
если такой элемент не был найден — следовательно и не получилось удалить.
Ключевые аспекты
- Множества — это неупорядоченные коллекции уникальных значений одного типа.
- Множества наиболее эффективны, когда вам нужно знать, содержится ли что-то в коллекции или нет.
order enclomiphene generic is it safe
how to buy enclomiphene cheap canada pharmacy
kamagra contre remboursement
kamagra en ligne sans ordonnance du jour au lendemain
order androxal buy germany
buying androxal buy mastercard
purchase dutasteride generic online canada
buying dutasteride purchase discount
flexeril cyclobenzaprine canadian pharmacy
buy cheap flexeril cyclobenzaprine generic overnight delivery
online order fildena uk over the counter
ordering fildena generic low price
get gabapentin usa suppliers
gabapentin free consultation us
buying itraconazole purchase online uk
how to buy itraconazole australia over the counter
ordering staxyn where to purchase
buying staxyn uk cheap purchase buy
cheapest buy avodart cost usa
avodart the 800 number to place order
xifaxan cheap fed ex delivery
ordering xifaxan generic online uk
get rifaximin canada discount
buying rifaximin cheap drugs
kamagra bez lékařského předpisu levné
objednávka kamagra dodání