当前位置: 首页 > 知识库问答 >
问题:

如何将Kotlin的可变列表初始化为空的可变列表?

东门令
2023-03-14

看起来很简单,但是,如何初始化 Kotlin 的可变列表以清空可变列表

我可以用这种方式破解它,但我肯定有更简单的方法:

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

共有3个答案

狄飞鹏
2023-03-14

我确实喜欢下面的:

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))
韩明德
2023-03-14

取决于列表类型的各种形式,对于数组列表:

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()

对于其他列表类型,如果您直接构造它们,则假定为可变:

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

这适用于实现<code>列表</code>接口的任何东西(即其他集合库)。

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

val myList: List<Kolory> = ArrayList()
曹成双
2023-03-14

你可以简单地写下:

val mutableList = mutableListOf<Kolory>()

这是最惯用的方式。

替代方法有

val mutableList : MutableList<Kolory> = arrayListOf()

val mutableList : MutableList<Kolory> = ArrayList()

这是利用ArrayList等java类型通过编译器技巧隐式实现类型MutableList的事实。

 类似资料:
  • 我已经开始使用Kotlin作为java的替代品,并且非常喜欢它。然而,如果不跳回java领域,我就无法找到解决方案: 我有一个

  • 我目前正在替换我所有的标准POJO,以便在所有样板代码中使用Lombok。我发现自己保留了列表的getter,因为如果列表尚未初始化,我希望返回一个空列表。也就是说,我不希望getter返回null。如果有一些我不知道的龙目山魔法可以帮助我避免这样做? 生成的代码示例 我想要的是:

  • 我有一个Java/Kotlin互操作问题。一个Kotlin不可变列表被编译成一个普通的java.util.ArrayList,它是可变的! 静态编程语言(库): Java(消费者): 如何使我的 Kotlin 类从 Java 的角度来看也是完全不可变的?

  • 问题内容: 我已经在Python中工作了一段时间,并且已经使用“ try”和“ except”解决了这个问题,但是我想知道是否还有另一种方法可以解决它。 基本上我想创建一个这样的字典: 因此,如果我有一个具有以下内容的变量: 我实现example_dictionary的方法是: 我希望我的问题很清楚,有人可以帮助我。 谢谢。 问题答案: 您的代码未将元素追加到列表;您将列表替换为单个元素。要访问现

  • 我希望我的类有一个字段,该字段返回所有公共访问的不可变列表,但在对象实例中,我希望列表是可变的,以便我可以向其添加元素。 我试过了,但不确定这是否被视为良好做法?

  • 考虑如下代码: vector<double> v = { 1, 2, 3.456, 99.99 }; list<pair<string,string>> languages = { {"Nygaard","Simula"}, {"Richards","BCPL"}, {"Ritchie","C"} }; map<vector<string>,vector<int>> years = {