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.