Junior — Middle
Какви са начините за реализиране на интерфейса Set в Kotlin и как се различават?
sobes.tech AI
Отговор от AI
В Kotlin интерфейсът Set е реализиран по няколко начина, които се различават по мутабилност и вътрешна реализация:
- Set — това е интерфейс за неизменяемо множество (само за четене). Той предоставя операции за четене, но не и за промяна.
- MutableSet — разширява Set и добавя методи за промяна на множеството (добавяне, премахване на елементи).
Реализации:
- HashSet — базирано на хеш таблица, осигурява бърз достъп и операции за добавяне/премахване. Порядъкът на елементите не е гарантиран.
- LinkedHashSet — наследява от HashSet, запазва реда на вмъкване на елементите.
- SortedSet / TreeSet (чрез Java) — множество, чиито елементи са сортирани по естествен ред или по компаратор.
Пример:
val readOnlySet: Set<Int> = setOf(1, 2, 3)
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4) // допустимо
// readOnlySet.add(4) // грешка при компилация
Изборът на реализация зависи от изискванията за мутабилност и реда на елементите.