web-dev-qa-db-fra.com

Comment initialiser la MutableList de Kotlin pour vider la MutableList?

Cela semble si simple, mais comment initialiser la MutableList de Kotlin pour vider MutableList?

Je pourrais le pirater de cette façon, mais je suis sûr qu'il y a quelque chose de plus facile disponible:

var pusta: List<Kolory> = emptyList()
var cos: MutableList<Kolory> = pusta.toArrayList()
195
ssuukk

Vous pouvez simplement écrire:

val mutableList = mutableListOf<Kolory>()

C'est la manière la plus idiomatique.

Des moyens alternatifs sont

val mutableList : MutableList<Kolory> = arrayListOf()

ou

val mutableList : MutableList<Kolory> = ArrayList()

Ceci exploite le fait que Java des types tels que ArrayList implémentent implicitement le type MutableList via une astuce du compilateur.

353
Kirill Rakhman

Différents formulaires en fonction du type de liste, pour Array List:

val myList = mutableListOf<Kolory>() 
// or more specifically use the helper for a specific list type
val myList = arrayListOf<Kolory>()

Pour LinkedList:

val myList = linkedListOf<Kolory>()
// same as
val myList: MutableList<Kolory> = linkedListOf()

Pour les autres types de liste, sera supposé mutable si vous les construisez directement:

val myList = ArrayList<Kolory>()
// or
val myList = LinkedList<Kolory>()

Ceci est vrai pour tout ce qui implémente l'interface List (c'est-à-dire d'autres bibliothèques de collections).

Pas besoin de répéter le type à gauche si la liste est déjà mutable. Ou seulement si vous voulez les traiter en lecture seule, par exemple:

val myList: List<Kolory> = ArrayList()
13
Jayson Minard

J'aime bien ci-dessous pour:

var book: MutableList<Books> = mutableListOf()

/ ** Retourne une nouvelle [MutableList] avec les éléments donnés. * /

public fun <T> mutableListOf(vararg elements: T): MutableList<T>
    = if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))
6
Chang