Sobes.tech
Junior

Кадом намудҳои ҷамъоварӣ Kotlin дастгирӣ мекунад?

sobes.tech AI

Ҷавоб аз AI

Котлин підтримує стандартні типи колекцій з Java Collection Framework, а також надає свої зручні розширення та інтерфейси.

Основні інтерфейси колекцій у Kotlin:

  • Collection<out E>: Базовий інтерфейс для незмінних колекцій.
  • MutableCollection<E>: Інтерфейс для змінюваних колекцій.
  • List<out E>: Інтерфейс для незмінних колекцій з упорядкованим доступом за індексом.
  • MutableList<E>: Інтерфейс для змінюваних колекцій з упорядкованим доступом за індексом.
  • Set<out E>: Інтерфейс для незмінних колекцій унікальних елементів без визначеного порядку.
  • MutableSet<E>: Інтерфейс для змінюваних колекцій унікальних елементів без визначеного порядку.
  • Map<K, out V>: Інтерфейс для незмінних колекцій пар "ключ-значення".
  • MutableMap<K, V>: Інтерфейс для змінюваних колекцій пар "ключ-значення".

Основні реалізації колекцій у стандартній бібліотеці Kotlin (часто використовувані функції-строювачі):

  • ArrayList: Змінюваний список, заснований на масиві.
  • LinkedList: Змінюваний список, заснований на зв’язаному списку.
  • HashSet: Змінюване множина, засноване на хеш-таблиці.
  • LinkedHashSet: Змінюване множина, засноване на хеш-таблиці та зв’язаному списку (зберігає порядок додавання).
  • HashMap: Змінювана карта, заснована на хеш-таблиці.
  • LinkedHashMap: Змінювана карта, заснована на хеш-таблиці та зв’язаному списку (зберігає порядок додавання).

Приклади створення колекцій:

// Незмінний список
val immutableList = listOf("a", "b", "c")

// Змінюваний список
val mutableList = mutableListOf(1, 2, 3)

// Незмінне множина
val immutableSet = setOf("apple", "banana")

// Змінюване множина
val mutableSet = mutableSetOf(10, 20, 30)

// Незмінна карта
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")

// Змінювана карта
val mutableMap = mutableMapOf("a" to 1, "b" to 2)

Ключова різниця між змінюваними (Mutable*) і незмінними (*) версіями полягає в тому, що змінювані колекції надають методи для додавання, видалення та зміни елементів, тоді як незмінні колекції цього не роблять. Функції-строювачі listOf, setOf, mapOf створюють незмінні колекції, а mutableListOf, mutableSetOf, mutableMapOf — змінювані.

Переваги використання колекцій у Kotlin:

  • Безпека: Незмінні колекції допомагають уникнути непередбачених змін.
  • Розширення: Kotlin надає багато корисних розширювальних функцій для роботи з колекціями (filter, map, forEach тощо).
  • Інтероперабельність: Легко працювати з існуючим Java-кодом, що використовує колекції з Java Collection Framework.