Sobes.tech
Junior

Czy możesz wyjaśnić różnice między List, Set i Map oraz kiedy ich używać?

sobes.tech AI

Odpowiedź od AI

List - uporządkowana kolekcja, dopuszczająca duplikaty. Elementy dostępne są po indeksie.

Set - nieuporządkowana kolekcja unikalnych elementów. Nie dopuszcza duplikatów.

Map - kolekcja par "klucz-wartość", gdzie każdy klucz jest unikalny. Elementy dostępne są po kluczu.

Tabela porównawcza:

Cecha List Set Map
Uporządkowanie Tak Nie W kolejności dodania (nie zawsze)
Duplikaty Dopuszcza Nie dopuszcza Klucze unikalne, wartości mogą się powtarzać
Dostęp Po indeksie Przez iterację Po kluczu
  • Użycie:
    • List: Gdy ważny jest porządek elementów i mogą występować duplikaty (np. lista zakupów, historia transakcji).
    • Set: Gdy potrzebujesz kolekcji unikalnych elementów i nie zależy na kolejności (np. zbiór unikalnych użytkowników, lista unikalnych tagów).
    • Map: Gdy chcesz przechowywać dane w parach "klucz-wartość" i szybko uzyskać wartość po kluczu (np. słownik, ustawienia aplikacji).

Przykład:

// List
val shoppingList = listOf("jabłko", "banan", "jabłko")
println(shoppingList[0]) // jabłko

// Set
val uniqueFruits = setOf("jabłko", "banan", "jabłko")
println(uniqueFruits.size) // 2 (jabłko pojawia się tylko raz)

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