Antworten:
Sie können einfach schreiben:
val mutableList = mutableListOf<Kolory>()
Dies ist der idiomatischste Weg.
Alternative Wege sind
val mutableList : MutableList<Kolory> = arrayListOf()
oder
val mutableList : MutableList<Kolory> = ArrayList()
Dies nutzt die Tatsache aus, dass Java-Typen wie ArrayList
den Typ implizit MutableList
über einen Compiler-Trick implementieren .
kotlin.collections.List
ist nicht java.utils.List
. Kotlin verfügt über einen Mechanismus zum Zuordnen einiger integrierter Java-Typen. Weitere Informationen finden Sie unter kotlinlang.org/docs/reference/java-interop.html#mapped-types und ähnlichen SO-Fragen. Der Kommentarbereich ist nicht geeignet, um dies im Detail zu diskutieren.
Verschiedene Formen je nach Listentyp für Array-Liste:
val myList = mutableListOf<Kolory>()
// or more specifically use the helper for a specific list type
val myList = arrayListOf<Kolory>()
Für LinkedList:
val myList = linkedListOf<Kolory>()
// same as
val myList: MutableList<Kolory> = linkedListOf()
Für andere Listentypen wird Mutable angenommen, wenn Sie sie direkt erstellen:
val myList = ArrayList<Kolory>()
// or
val myList = LinkedList<Kolory>()
Dies gilt für alles, was die List
Schnittstelle implementiert (dh für andere Sammlungsbibliotheken).
Der Typ auf der linken Seite muss nicht wiederholt werden, wenn die Liste bereits veränderbar ist. Oder nur, wenn Sie sie als schreibgeschützt behandeln möchten, zum Beispiel:
val myList: List<Kolory> = ArrayList()
ArrayList(24)
Wenn ich zum Beispiel denke, dass 24 ein guter Anfang dafür ist, wird es wahrscheinlich nicht mehr als es brauchen.
mutableListOf
. Das richtige wäre:val myList = arrayListOf<Kolory>() // same as // val myList = mutableListOf<Kolory>()
Ich mag unten:
var book: MutableList<Books> = mutableListOf()
/ ** Gibt eine neue [MutableList] mit den angegebenen Elementen zurück. * /
public fun <T> mutableListOf(vararg elements: T): MutableList<T>
= if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))