Sobes.tech
Junior

Kotlin hansı kolleksiya növlərini dəstəkləyir?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin Java Collection Framework-ün standart kolleksiya tiplərini dəstəkləyir və həmçinin öz rahat genişlənmələrini və interfeyslərini təqdim edir.

Kotlin-də əsas kolleksiya interfeysləri:

  • Collection<out E>: Dəyişdirilməz kolleksiya üçün əsas interfeys.
  • MutableCollection<E>: Dəyişdirilə bilən kolleksiya üçün interfeys.
  • List<out E>: İndeksə görə sıralanmış, dəyişdirilməz kolleksiya üçün interfeys.
  • MutableList<E>: İndeksə görə sıralanmış, dəyişdirilə bilən kolleksiya üçün interfeys.
  • Set<out E>: Müəyyən bir sırası olmayan, unikal elementlərdən ibarət dəyişdirilməz kolleksiya üçün interfeys.
  • MutableSet<E>: Müəyyən bir sırası olmayan, unikal elementlərdən ibarət dəyişdirilə bilən kolleksiya üçün interfeys.
  • Map<K, out V>: Dəyişdirilməz açar-dəyər cütləri kolleksiyası üçün interfeys.
  • MutableMap<K, V>: Dəyişdirilə bilən açar-dəyər cütləri kolleksiyası üçün interfeys.

Kotlin standart kitabxanasında kolleksiyaların əsas tətbiqləri (tez-tez istifadə olunan qurucu funksiyalar ilə):

  • ArrayList: Array-ə əsaslanan dəyişdirilə bilən siyahı.
  • LinkedList: Bağlı siyahıya əsaslanan dəyişdirilə bilən siyahı.
  • HashSet: Hash cədvəli əsasında dəyişdirilə bilən toplusu.
  • LinkedHashSet: Hash cədvəli və bağlı siyahıya əsaslanan dəyişdirilə bilən toplusu (əlavə etmə ardıcıllığını saxlayır).
  • HashMap: Hash cədvəli əsasında dəyişdirilə bilən xəritə.
  • LinkedHashMap: Hash cədvəli və bağlı siyahıya əsaslanan dəyişdirilə bilən xəritə (əlavə etmə ardıcıllığını saxlayır).

Kolleksiyaların yaradılması nümunələri:

// Dəyişdirilməz siyahı
val immutableList = listOf("a", "b", "c")

// Dəyişdirilə bilən siyahı
val mutableList = mutableListOf(1, 2, 3)

// Dəyişdirilməz toplusu
val immutableSet = setOf("apple", "banana")

// Dəyişdirilə bilən toplusu
val mutableSet = mutableSetOf(10, 20, 30)

// Dəyişdirilməz xəritə
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")

// Dəyişdirilə bilən xəritə
val mutableMap = mutableMapOf("a" to 1, "b" to 2)

Əsas fərq dəyişdirilə bilən (Mutable*) və dəyişdirilməz (*) versiyalar arasında odur ki, dəyişdirilə bilən kolleksiyalar elementlərin əlavə edilməsi, silinməsi və dəyişdirilməsi üçün metodlar təqdim edir, dəyişdirilməz kolleksiyalar isə bunu etməz. Qurucu funksiyalar listOf, setOf, mapOf dəyişdirilməz kolleksiyalar yaradır, mutableListOf, mutableSetOf, mutableMapOf isə dəyişdirilə bilən kolleksiyalar.

Kotlin-də kolleksiyalardan istifadə etməyin üstünlükləri:

  • Təhlükəsizlik: Dəyişdirilməz kolleksiyalar standart olaraq gözlənilməz dəyişikliklərin qarşısını almağa kömək edir.
  • Genişləndirmələr: Kotlin kolleksiyalar ilə işləmək üçün çox faydalı genişləndirmə funksiyaları təqdim edir (filter, map, forEach və s.).
  • İnteroperabillik: Mövcud Java kodu ilə işləmək çox asandır, Java Collection Framework kolleksiyalarını istifadə edir.