Sobes.tech
Junior

Kas saaks selgitada erinevusi List, Set ja Map vahel ning millal neid kasutada?

sobes.tech AI

Vastus AI-lt

List - järjestikune kogumik, mis lubab duplikaate. Elemente pääseb ligi indeksi kaudu.

Set - mittejärjestikune unikaalsete elementide kogumik. Ei luba duplikaate.

Map - paaride "võti-väärtus" kogumik, kus iga võti on unikaalne. Elementidele pääseb ligi võtme kaudu.

Tabel võrdluseks:

Omadus List Set Map
Järjestus Jah Ei Järgnevalt lisamise järjekorras (mitte alati)
Duplikaadid Lubatud Ei luba Võtmed on unikaalsed, väärtused võivad duplitseerida
Juurdepääs Indeksi kaudu Iteratsiooni kaudu Võtme kaudu
  • Kasutus:
    • List: Kui oluline on elementide järjekord ja võivad olla duplikaadid (näiteks ostunimekiri, tehingu ajalugu).
    • Set: Kui vaja on unikaalsete elementide kogumit ja järjekord ei ole oluline (näiteks unikaalsete kasutajate kogum, unikaalsete siltide nimekiri).
    • Map: Kui vaja on salvestada andmeid paaridena "võti-väärtus" ja kiiresti saada väärtus võtmest (näiteks sõnastik, rakenduse seaded).

Näide:

// List
val shoppingList = listOf("õun", "banaan", "õun")
println(shoppingList[0]) // õun

// Set
val uniqueFruits = setOf("õun", "banaan", "õun")
println(uniqueFruits.size) // 2 (õun on ainult üks kord)

// Map
val userAges = mapOf("Alice" to 30, "Bob" to 25)
println(userAges["Alice"]) // 30