Sobes.tech
Junior

Jaké typy kolekcí podporuje Kotlin?

sobes.tech AI

Odpověď od AI

Kotlin podporuje standardní typy kolekcí z Java Collection Framework a také poskytuje své pohodlné rozšíření a rozhraní.

Hlavní rozhraní kolekcí v Kotlin:

  • Collection<out E>: Základní rozhraní pro neměnitelné kolekce.
  • MutableCollection<E>: Rozhraní pro měnitelné kolekce.
  • List<out E>: Rozhraní pro neměnitelné kolekce s uspořádaným přístupem podle indexu.
  • MutableList<E>: Rozhraní pro měnitelné kolekce s uspořádaným přístupem podle indexu.
  • Set<out E>: Rozhraní pro neměnitelné kolekce unikátních prvků bez určitého pořadí.
  • MutableSet<E>: Rozhraní pro měnitelné kolekce unikátních prvků bez určitého pořadí.
  • Map<K, out V>: Rozhraní pro neměnitelné kolekce párů "klíč-hodnota".
  • MutableMap<K, V>: Rozhraní pro měnitelné kolekce párů "klíč-hodnota".

Hlavní implementace kolekcí v standardní knihovně Kotlin (často používané konstrukční funkce):

  • ArrayList: Měnitelný seznam založený na poli.
  • LinkedList: Měnitelný seznam založený na spojovaném seznamu.
  • HashSet: Měnitelná množina založená na hash tabulce.
  • LinkedHashSet: Měnitelná množina založená na hash tabulce a spojovaném seznamu (uchovává pořadí přidání).
  • HashMap: Měnitelná mapa založená na hash tabulce.
  • LinkedHashMap: Měnitelná mapa založená na hash tabulce a spojovaném seznamu (uchovává pořadí přidání).

Příklady vytváření kolekcí:

// Neměnitelný seznam
val immutableList = listOf("a", "b", "c")

// Měnitelný seznam
val mutableList = mutableListOf(1, 2, 3)

// Neměnitelná množina
val immutableSet = setOf("apple", "banana")

// Měnitelná množina
val mutableSet = mutableSetOf(10, 20, 30)

// Neměnitelná mapa
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")

// Měnitelná mapa
val mutableMap = mutableMapOf("a" to 1, "b" to 2)

Klíčovým rozdílem mezi měnitelnými (Mutable*) a neměnitelnými (*) verzemi je to, že měnitelné kolekce poskytují metody pro přidávání, odstraňování a změnu prvků, zatímco neměnitelné kolekce to nedělají. Konstrukční funkce listOf, setOf, mapOf vytvářejí neměnitelné kolekce, zatímco mutableListOf, mutableSetOf, mutableMapOf jsou měnitelné.

Výhody používání kolekcí v Kotlinu:

  • Bezpečnost: Neměnitelné kolekce pomáhají předejít nečekaným změnám.
  • Rozšíření: Kotlin nabízí mnoho užitečných rozšiřujících funkcí pro práci s kolekcemi (filter, map, forEach atd.).
  • Interoperabilita: Snadná práce s existujícím kódem v Java, který používá kolekce z Java Collection Framework.