2015-10-22 14 views

risposta

137

Si può semplicemente scrivere:

val mutableList = mutableListOf<Kolory>() 

Questo è il modo più idiomatica.

modi alternativi sono

val mutableList : MutableList<Kolory> = arrayListOf() 

o

val mutableList : MutableList<Kolory> = ArrayList() 

Questa sfrutta il fatto che i tipi Java come ArrayList vengono implicitamente pone implementando il tipo MutableList tramite un trucco compilatore.

+0

Hai bisogno di importare qualcosa? Quando scrivo questo nel mio attuale progetto ottengo un riferimento irrisolto arrayListOf e lo stesso se provo mutableListOf – vextorspace

+0

Hai lo stdlib nel tuo classpath? –

+0

Ho appena dovuto passare il mio flag kotlin_version nel mio build.gradle di nuovo alla versione 1.1.0 anziché 1.1.1 – vextorspace

7

forme diverse a seconda del tipo di lista, per lista di array:

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

Per LinkedList:

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

Per gli altri tipi di elenco, saranno assunti Mutevole se li si costruisce direttamente:

Ciò vale per qualsiasi cosa che implementa lo List interfaccia (ad es. altre librerie di collezioni).

Non è necessario ripetere il tipo sul lato sinistro se l'elenco è già mutabile. Oppure, solo se si desidera trattare loro come di sola lettura, ad esempio:

val myList: List<Kolory> = ArrayList() 
1

Mi piace qui sotto per:

var book: MutableList<Books> = mutableListOf() 

/** Restituisce un nuovo [MutableList] con gli elementi forniti. */

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