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