如何初始化Kotlin的MutableList以清空MutableList?

时间:2015-10-22 10:28:30

标签: kotlin

似乎很简单,但是,如何将Kotlin的MutableList初始化为空MutableList

我可以通过这种方式破解它,但我确信有更容易实现的东西:

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

4 个答案:

答案 0 :(得分:322)

您可以简单地写一下:

val mutableList : MutableList<Kolory> = arrayListOf()

这是最惯用的方式。

替代方式

val mutableList : MutableList<Kolory> = ArrayList()

ArrayList

这正在利用像MutableList这样的java类型通过编译技巧隐式实现类型{{1}}的事实。

答案 1 :(得分:13)

各种形式,取决于List的类型,对于Array List:

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

对于LinkedList:

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

对于其他列表类型,如果直接构造它们,将被假定为Mutable:

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

这适用于实现List接口的任何内容(即其他集合库)。

如果列表已经是Mutable,则无需重复左侧的类型。或者仅当您想将它们视为只读时,例如:

val myList: List<Kolory> = ArrayList()

答案 2 :(得分:6)

我喜欢以下内容:

var book: MutableList<Books> = mutableListOf()

/ **返回具有给定元素的新[MutableList]。 * /

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

答案 3 :(得分:0)

在 kotlin 中创建可空字符串的可变列表

val systemUsers: MutableList<String?> = mutableListOf()