Kotlin в IntelliJ IDEA Kotlin змінні Kotlin типи даних Kotlin операції з числами Kotlin умовні вирази Kotlin умовні конструкції Kotlin цикли Kotlin послідовності Kotlin масиви Kotlin функціональне програмування Kotlin змінна кількість параметрів. Vararg Kotlin повернення результату. оператор return Kotlin однорядкові і локальні функції Kotlin перевантаження функцій Kotlin Лямбда-вирази Kotlin функції вищого порядку Kotlin Анонімні функції Kotlin ООП Класи і об'єкти Kotlin ООП властивості Kotlin ООП конструктор Kotlin ООП функції в класах Kotlin ООП Пакети та імпорт Kotlin ООП модифікатори видимості Kotlin ООП вкладені класи Kotlin ООП інтерфейси Kotlin ООП спадкування Kotlin ООП Перевизначення методів і властивостей Kotlin ООП Абстрактні класи та методи Kotlin ООП Data-класи Kotlin ООП перерахування enums Kotlin ООП Null і nullable-типи Kotlin ООП Обробка винятків Kotlin ООП перетворення типів Kotlin ООП Інфіксна функція Kotlin ООП функції розширення Kotlin ООП Узагальнені класи і функції Kotlin ООП обмеження узагальнень Kotlin ООП Варіантність, коваріантність і контраваріантність Kotlin Колекції. Змінювані і незмінні колекції Kotlin Колекції. LIST список Kotlin Колекції. Set Kotlin Колекції. Map

Kotlin Колекції. Set


Інтерфейс Set являє невпорядкований набір об'єктів, який зберігає тільки унікальні об'єкти. Інтерфейс Set являє незмінний (immutable) набір. Set розширює інтерфейс Collection .

Деякі методи інтерфейсу Set:

  • contains (element) : повертає true, якщо елемент міститься в наборі

  • isEmpty () : повертає true, якщо набір порожній

  • minus (element) : повертає новий набір, в якому відсутня element. При цьому початковий набір не змінюється

  • plus (element) : повертає новий набір, в який доданий element. Вихідний набір також не змінюється

Для створення незмінного (immutable) набору використовується функція setOf () . Фактично створений об'єкт буде представляти об'єкт java.util.LinkedHashSet .

var numbers: Set<Int> = setOf(5, 6, 7)

Використання Set:

var items = setOf(1, 2, 3, 4, 5)
println(items.size)          // 5
println(items.contains(4))  // true
println(items.isEmpty())    // false
println(items.minus(3))     // [1, 2, 4, 5]
println(items.plus(7))      //  [1, 2, 3, 4, 5, 7]
     
for (n in items){ print(n) }    // 1 2 3 4 5 

Змінні колекції

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

Для створення змінюваних (mutable) наборів застосовується функція mutableSetOf () . По суті вона також створює об'єкт класу java.util.LinkedHashSet .

var numbers3: MutableSet<Int> = mutableSetOf(35, 36, 37)

Інтерфейс MutableSet реалізується наступними типами змінних наборів:

  • LinkedHashSet : об'єднує можливості хеш-таблиці і пов'язаного списку. Створюється за допомогою функції linkedSetOf () .

  • HashSet : представляє хеш-таблицю. Створюється за допомогою функції hashSetOf () .

  • TreeSet : представляє структуру даних у вигляді дерева, в якому всі об'єкти зберігаються в відсортованому вигляді по зростанню. Створюється за допомогою функції sortSetOf () .

var numbers: HashSet<Int> = hashSetOf(5, 6, 7)
var numbers1: TreeSet<Int> = sortedSetOf(15, 16, 17)
var numbers2: LinkedHashSet<Int> = linkedSetOf(25, 26, 27)
var numbers3: MutableSet<Int> = mutableSetOf(35, 36, 37)

Зміна набору за допомогою MutableSet:

var numbers: MutableSet<Int> = mutableSetOf(35, 36, 37)
println(numbers.add(2))
println(numbers.addAll(setOf(4, 5, 6)))
println(numbers.remove(36))
     
for (n in numbers){ println(n) }    // 35 37 2 4 5 6
numbers.clear()

Наш партнер:
beta test mp3 playlist downloader