看起来很简单,但是,如何初始化 Kotlin 的可变列表
以清空可变列表
?
我可以用这种方式破解它,但我肯定有更简单的方法:
var pusta: List<Kolory> = emptyList()
var cos: MutableList<Kolory> = pusta.toArrayList()
我确实喜欢下面的:
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))
取决于列表类型的各种形式,对于数组列表:
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()
你可以简单地写下:
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 = {