В Kotlin (особенно в JVM-ориентированных проектах, таких как Android), основные коллекции строятся поверх Java Collection Framework, но Kotlin добавляет расширения, безопасный синтаксис и функциональный стиль.
Основные интерфейсы коллекций в Kotlin
| Интерфейс | Назначение | Пример реализации |
|---|---|---|
Collection<T> | Базовый интерфейс для всех коллекций | List, Set, MutableList |
List<T> | Упорядоченная коллекция с доступом по индексу | listOf(1, 2, 3) |
Set<T> | Уникальные элементы без порядка (по умолчанию) | setOf("a", "b") |
Map<K, V> | Пары ключ-значение | mapOf("a" to 1) |
Их изменяемые аналоги:
| Интерфейс | Описание | Пример создания |
|---|---|---|
MutableCollection<T> | Расширяет Collection<T> с изменениями | — |
MutableList<T> | Список с возможностью изменять элементы | mutableListOf(1, 2) |
MutableSet<T> | Мутируемое множество | mutableSetOf("a", "b") |
MutableMap<K, V> | Мутируемая мапа | mutableMapOf("a" to 1) |
Iterable<T>
Базовый интерфейс, содержит:
iterator(): Iterator<T>- Используется в
for (item in collection)
Collection<T>
Наследуется от Iterable, добавляет:
size,contains(),isEmpty(),containsAll()
List<T>
- Сохраняет порядок
- Поддерживает дубли
- Доступ по индексу:
list[0]
Set<T>
- Без дубликатов (
equals()иhashCode()определяют уникальность)
- Реализация по умолчанию:
LinkedHashSet(сохраняет порядок вставки)
- Есть
HashSet,SortedSet,TreeSet(Java)
Map<K, V>
- Пары ключ-значение
- Ключи уникальны
- Методы:
get(key),keys,values,entries