与大多数语言不同,Kotlin 区分可变集合和不可变集合(lists、sets、maps 等)。精确控制什么时候集合可编辑有助于消除 bug 和设计良好的 API。
Kotlin 没有专门的语法结构创建 list 或 set。 要用标准库的方法,如 listOf()
、mutableListOf()
、setOf()
、mutableSetOf()
。
val numbers:MutableList<Int> = mutableListOf(1,2,3)//创建一个可变的list
numbers.add(4)
println("$numbers")//[1, 2, 3, 4]
val items = listOf("a","b","c")
println("$items")//[a, b, c]
val sets = mutableSetOf("a","b","c")
sets.add("d")
sets.add("a")
println(sets)//[a, b, c, d]
val readWriteMap = hashMapOf("foo" to 1,"bar" to 2)
println(readWriteMap["foo"])
List 和 set 有很多有用的扩展方法
val items = listOf(1, 2, 3, 4)
println("${items.first()}")//1
println("${items.last()}")//4
println("${items.filter { it%2==0 }}")//[2, 4]
val rwList = mutableListOf(1, 2, 3)
rwList.requireNoNulls()
if (rwList.none { it > 6 }) println("No items above 6") // 输出“No items above 6”
val item = rwList.firstOrNull()