В 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