Jak dodać przedmiot do ArrayList
w Kotlinie?
Odpowiedzi:
W przypadku osób właśnie migrujących z programu java
In Kotlin
List
jest domyślnie niezmienną i zmienną wersją list MutableList
.
Stąd jeśli masz coś takiego:
val list: List<String> = ArrayList()
W takim przypadku nie otrzymasz add()
metody, ponieważ lista jest niezmienna. Dlatego będziesz musiał zadeklarować, MutableList
jak pokazano poniżej:
val list: MutableList<String> = ArrayList()
Teraz zobaczysz add()
metodę i możesz dodać elementy do dowolnej listy.
Jeśli masz kolekcję MUTABLE :
val list = mutableListOf(1, 2, 3)
list += 4
Jeśli masz kolekcję IMMUTABLE :
var list = listOf(1, 2, 3)
list += 4
Zwróć uwagę, że używam val
dla listy mutable, aby podkreślić, że obiekt jest zawsze ten sam, ale jego zawartość się zmienia.
W przypadku niezmiennej listy musisz to zrobić var
. +=
Operator tworzy nowy obiekt z dodatkową wartością.
+=
na niezmiennej liście, wymaga skopiowania wszystkich elementów listy do nowej listy mutable, a następnie ponownego przypisania jej do aktualnej listy. Nie wiedziałem, że zadeklarowanie listy jako var
. w każdym razie deklarowanie listy jako var nie jest dla mnie dobrym pomysłem.
var
. Jeśli niezmienna lista jest zadeklarowana jako val
, to lista nie może się nigdy zmienić. Możliwe byłoby po prostu ponowne przypisanie go do innej zmiennej.