Kotlin Academy · Lekcja

mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji

Twórz mutowalne kolekcje i bezpiecznie je modyfikuj.

Lekcja 2 z 413 kroki

mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Gdy potrzebna jest możliwość modyfikacji

Kolekcje modyfikowalne pozwalają dodawać, usuwać i aktualizować elementy. Należy ich używać, gdy kolekcja zwiększa się lub zmienia z czasem.

mutableListOf

mutableListOf tworzy obiekt MutableList oparty na ArrayList. Można dodawać, usuwać i zastępować elementy.
val list = mutableListOf("a", "b", "c")
list.add("d")
list.add(0, "z")  // insert at index 0
list.remove("b")
println(list)  // [z, a, c, d]

mutableSetOf

mutableSetOf tworzy obiekt MutableSet. Metoda add zwraca false, jeśli dany element już istnieje.
val set = mutableSetOf(1, 2, 3)
set.add(4)
set.add(2)  // already exists, no change
set.remove(1)
println(set)  // [2, 3, 4]

mutableMapOf

mutableMapOf tworzy obiekt MutableMap. Do wstawiania i aktualizowania elementów należy używać put lub [].
val map = mutableMapOf("a" to 1, "b" to 2)
map["c"] = 3
map["a"] = 10      // update
map.remove("b")
println(map)  // {a=10, c=3}

addAll, removeAll, retainAll

Operacje zbiorcze dla kolekcji modyfikowalnych.
val nums = mutableListOf(1, 2, 3)
nums.addAll(listOf(4, 5, 6))
println(nums)  // [1, 2, 3, 4, 5, 6]
nums.removeAll { it % 2 == 0 }
println(nums)  // [1, 3, 5]

clear i replaceAll

clear usuwa wszystkie elementy. replaceAll przekształca każdy element w miejscu.
val list = mutableListOf(1, 2, 3, 4)
list.replaceAll { it * 2 }
println(list)  // [2, 4, 6, 8]
list.clear()
println(list)  // []

Tworzenie listy za pomocą buildList

buildList tworzy listę tylko do odczytu za pomocą modyfikowalnego konstruktora — w sposób przejrzysty i zwięzły.
val squares = buildList {
    for (i in 1..5) add(i * i)
}
println(squares)  // [1, 4, 9, 16, 25]

buildMap i buildSet

Podobnie buildMap i buildSet pozwalają tworzyć mapy i zbiory za pomocą operacji modyfikujących, zwracając wyniki tylko do odczytu.
val map = buildMap {
    put("en", "English")
    put("de", "German")
    put("tr", "Turkish")
}
println(map["tr"])  // Turkish

ArrayList, LinkedList: jawne typy

Jeśli potrzebujesz określonych właściwości wydajnościowych, użyj bezpośrednio ArrayList lub ArrayDeque.
val arrayList = ArrayList<String>()
arrayList.add("x")
val deque = ArrayDeque<Int>()
deque.addFirst(1)
deque.addLast(2)

getOrPut do akumulowania danych w mapie

getOrPut zwraca istniejącą wartość albo wstawia wartość domyślną i ją zwraca — świetnie nadaje się do grupowania.
val groups = mutableMapOf<String, MutableList<Int>>()
for (i in 1..6) {
    val key = if (i % 2 == 0) "even" else "odd"
    groups.getOrPut(key) { mutableListOf() }.add(i)
}
println(groups)

Sortowanie modyfikowalnych list

sort i sortWith sortują modyfikowalne listy w miejscu.
val nums = mutableListOf(3, 1, 4, 1, 5, 9)
nums.sort()
println(nums)  // [1, 1, 3, 4, 5, 9]
nums.sortDescending()
println(nums)  // [9, 5, 4, 3, 1, 1]

Szybkie sprawdzenie

Która funkcja tworzy listę tylko do odczytu za pomocą modyfikowalnego konstruktora wewnątrz lambdy?

Podsumowanie

mutableListOf/SetOf/MapOf służą do tworzenia kolekcji modyfikowalnych. Do modyfikowania służą add, remove, put, clear i replaceAll. buildList/Map/Set pozwalają uzyskać przejrzyste, niezmienne wyniki na podstawie modyfikowalnego procesu tworzenia. Następnie: bezpieczne uzyskiwanie dostępu do elementów!
Bezpłatny start

Ucz się Kotlin dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
51
Lekcje
203

Często zadawane pytania

Czy lekcja „mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji” jest bezpłatna?

Tak — pełny tekst „mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji”?

Twórz mutowalne kolekcje i bezpiecznie je modyfikuj. Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. listOf, setOf, mapOf: kolekcje tylko do odczytu
  2. mutableListOf, mutableMapOf: konstruktory mutowalnych kolekcji
  3. Dostęp do elementów: get, first, last, getOrNull
  4. Iterowanie po kolekcjach i przekształcanie ich za pomocą biblioteki standardowej
← Powrót do Kotlin Academy