Sobes.tech
Junior

Kotlin кайсы коллекция түрлөрүн колдойт?

sobes.tech AI

AIден жооп

Котлин колдонуучу Java Collection Frameworkтин стандарттык түрлөрүн колдойт жана ошондой эле өзүнүн ыңгайлуу кеңейтүүлөрү жана интерфейстерин сунуштайт.

Котлиндеги негизги коллекция интерфейстер:

  • Collection<out E> — өзгөрүлбөс коллекция үчүн негизги интерфейс.
  • MutableCollection<E> — өзгөрүлүүчү коллекциялар үчүн интерфейс.
  • List<out E> — индекс боюнча тартиптелген өзгөрүлбөс коллекция.
  • MutableList<E> — индекс боюнча тартиптелген өзгөрүлүүчү коллекция.
  • Set<out E> — такыр өзгөрүлбөс, белгилүү тартиби жок уникалдуу элементтердин коллекциясы.
  • MutableSet<E> — өзгөрүлүүчү, белгилүү тартиби жок уникалдуу элементтердин коллекциясы.
  • Map<K, out V> — өзгөрүлбөс "клавиша-баа" парларынын коллекциясы.
  • MutableMap<K, V> — өзгөрүлүүчү "клавиша-баа" парларынын коллекциясы.

Котлин стандарттык китепканасындагы негизги реализациялар:

  • 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 колекциялар менен иштөө үчүн көптөгөн пайдалуу кеңейтүү функцияларын сунуштайт (filter, map, forEach жана башка).
  • Интероперабилдүүлүк: Java Collection Framework колдонгон учурда оңой иштөө мүмкүнчүлүгү.