我看到Kotlin有一个List<out E>
集合但我不知道如何初始化它.在Java中,我可以写:
List<String> geeks = Arrays.asList("Fowler", "Beck", "Evans");
Run Code Online (Sandbox Code Playgroud)
我如何在Kotlin中实现同样的目标?
Ily*_*lya 95
listOf
救援的顶级功能:
val geeks = listOf("Fowler", "Beck", "Evans")
Run Code Online (Sandbox Code Playgroud)
Ilya和gmariotti的赞成回答都是好的和正确的.然而,一些备选方案在评论中展开,有些则根本没有提及.
这个答案包括已经给出的摘要,以及澄清和其他几个备选方案.
List
)不可变列表或只读列表是不能添加或删除元素的列表.
listOf()
经常做你想要的.这将创建一个不可变列表,类似于Arrays.asList
Java.emptyList()
中所述,也是如此,但自然会返回一个空列表.listOfNotNull()
返回不包含所有null
元素的不可变列表.MutableList
)可变列表可以添加或删除元素.
mutableListOf()
,当你需要在列表中添加或删除元素时,通常就是你想要的.arrayListOf()
.这创造了一个可变的ArrayList
.如果你真的想要一个ArrayList
实现,请使用它mutableListOf()
.List
没有任何便利功能的其他实现,可以将它们初始化为例如val list = LinkedList<String>()
.这只是通过调用其构造函数来创建对象.仅在您真正需要时才使用此功能,例如,LinkedList
实现.小智 8
让我解释一些用例:让我们创建一个带有初始化项的不可变(不可更改)列表:
val myList = listOf("one" , "two" , "three")
Run Code Online (Sandbox Code Playgroud)
让我们创建一个带有初始化字段的可变(可变)列表:
val myList = mutableListOf("one" , "two" , "three")
Run Code Online (Sandbox Code Playgroud)
让我们声明一个不可变(不可更改)然后实例化它:
lateinit var myList : List<String>
// and then in the code :
myList = listOf("one" , "two" , "three")
Run Code Online (Sandbox Code Playgroud)
最后为每个添加一些额外的项目:
val myList = listOf("one" , "two" , "three")
myList.add() //Unresolved reference : add, no add method here as it is non mutable
val myMutableList = mutableListOf("one" , "two" , "three")
myMutableList.add("four") // it's ok
Run Code Online (Sandbox Code Playgroud)
这样就可以在Kotlin中初始化List了
val alphabates : List<String> = listOf("a", "b", "c")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38144 次 |
最近记录: |