Sobes.tech
Junior

Ar galite paaiškinti skirtumus tarp List, Set ir Map ir kada juos naudoti?

sobes.tech AI

Atsakymas iš AI

List - išdėstyta kolekcija, leidžianti dubliavimus. Elementai prieinami pagal indeksą.

Set - ne išdėstyta unikalių elementų kolekcija. Neleidžia dubliavimų.

Map - porų "raktas-reikšmė" kolekcija, kur kiekvienas raktas yra unikalus. Elementai prieinami pagal raktą.

Palyginimo lentelė:

Savybė List Set Map
Tvarkinga Taip Ne Pagal pridėjimo tvarką (ne visada)
Dubliavimai Leidžiami Neleidžiami Raktai unikalūs, reikšmės gali kartotis
Prieiga Per indeksą Per iteraciją Per raktą
  • Naudojimas:
    • List: Kai svarbi elementų tvarka ir gali būti dubliavimų (pvz., pirkinių sąrašas, operacijų istorija).
    • Set: Kai reikia unikalių elementų kolekcijos ir tvarka nėra svarbi (pvz., unikalių naudotojų rinkinys, unikalių žymių sąrašas).
    • Map: Kai norite saugoti duomenis poromis "raktas-reikšmė" ir greitai gauti reikšmę pagal raktą (pvz., žodynas, programos nustatymai).

Pavyzdys:

// List
val shoppingList = listOf("obuolys", "bananas", "obuolys")
println(shoppingList[0]) // obuolys

// Set
val uniqueFruits = setOf("obuolys", "bananas", "obuolys")
println(uniqueFruits.size) // 2 (obuolys pasirodo tik kartą)

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