Potraktujcie ten wpis jako drugą część wpisu poprzedniego. Wcześniej była lista niemodyfikowalna, a teraz zajmiemy się taką z możliwością dodawania, modyfikowania i usuwania z niej elementów. "mutableListOf" w języku Kotlin - oto czego Wam potrzeba!

"MUTABLELISTOF" W JĘZYKU KOTLIN. W ROLI GŁÓWNEJ LISTY MODYFIKOWALNE!

Do dyspozycji macie drugą funkcję działającą identycznie do "listOf". Jest nią "mutableListOf". Umożliwia tworzenie listy modyfikowalnej. Czym się to różni od tamtej? W niej możemy wpływać na jej zawartość, to znaczy dodawać nowe elementy, usuwać już te istniejące oraz przypisywać inne w miejsca tych obecnie występujących w danym indeksie (zamieniać elementy, pisząc krótko). Można ją porównać do "ArrayList" z języka Java. Przyjrzyjmy się dokładniej jak wygląda "mutableListOf" w języku Kotlin.

TWORZENIE INSTANCJI LISTY MODYFIKOWALNEJ

Oto najkrótsza droga do utworzenia listy modyfikowalnej. "mutableListOf" + przypisanie do zmiennej. Czy to naprawdę tyle? Oczywiście!

val numbers = mutableListOf(13, 15, 27, -6)

i jak możecie się domyślić, będzie posiadało to typ "MutableList<Int>":

val numbers : MutableList<Int> = mutableListOf(13, 15, 27, -6)

ZESTAW PRZYKŁADOWYCH METOD LISTY MODYFIKOWALNEJ

Tak jak "listOf" zawiera zestaw metod, tak i "mutableListOf" w języku Kotlin posiada swoje pole do manewrów. Oto kilka przykładów których nie posiada lista niemodyfikowalna.

ADD

Klasyczna metoda to oczywiście dodawanie elementów, czyli metoda "add". Występuje w dwóch wariantach. Podając jeden argument, wstawiamy nowy element na koniec listy. Podając dwa argumenty (kolejno indeks oraz element), umieścimy go w miejscu wskazanego indeksu:

numbers.add(67)
numbers.add(2, -90)
REMOVE

Usuwanie wskazanego elementu odbywa się przez metodę "remove". Podając za parametr argument jaki chcemy usunąć, pozbywamy się go skutecznie z listy, a reszta elementów zostaje przesunięta w jedną lub w drugą stronę szeregowo. Warto wiedzieć, że jeśli metoda nie znajdzie podanego przez nas elementu, nie będzie żadnych konsekwencji ani "krzyczenia", że nie znaleziono elementu. Nie będzie żadnego zgłaszania wyjątku!

numbers.remove(-6)
SET

"set" to jest ustawianie nowej wartości we wskazanym indeksie. Identyczna operacja jakbyście przypisywali nową referencję do zmiennej ze słowem kluczowym "var". Identiko.

numbers.set(0, 801)

Uwaga! IDE mi zasugerowało wygodniejszy zapis przy pomocy notacji indeksowej, zatem to:

numbers[0] = 801

jest równoważne z wywołaniem metody "set". Na końcówkę dodam, że "mutableListOf" w języku Kotlin działa jak pewnego rodzaju "addon" do "listOf", zatem oprócz swoich metod do zarządzania zawartością, posiada wszystkie metody jakie posiada "listOf". Wszyściusieńkie.

CZY TEN PODZIAŁ NA MODYFIKOWALNE I NIEMODYFIKOWALNY NIE JEST DZIWNY?

Na zakończenie niniejszego artykułu, wytłumaczę Wam czemu to podzielono na modyfikowalne i niemodyfikowalne. Żeby można było świadomie kontrolować które wartości w jakich listach powinny podlegać modyfikacjom. W tablicach nie mamy takiego wyboru, edycja jest zawsze dostępna, nawet przy "val"! Aby dać nam wolną rękę do podjęcia samodzielnej decyzji, twórcy języka Kotlin podzielili definiowanie kolekcji na "mutable" (modyfikowalne) oraz "immutable" (niemodyfikowalne).

Funkcja "mutableListOf" w języku Kotlin

"mutableListOf" w języku Kotlin tworzy listę pozwalającą na wszelkie modyfikacje jej wnętrza. Takie operacje jak dodawanie lub usuwanie z niej elementów są dostępne tylko w liście modyfikowalnej.


Koniec tłumaczenia jak tworzyć listy w Kotlinie! Przejdziemy dalej do poznawania kolejnej charakterystycznej struktury danych.

PODOBNE ARTYKUŁY