Kotlin 简明教程
Kotlin - Lists
Kotlin 列表是有序的项目集合。Kotlin 列表可以是可变的 ( mutableListOf ) 或只读的 ( listOf )。可以使用索引访问列表的元素。Kotlin 可变或不可变列表可以有重复的元素。
Loop through Kotlin Lists
遍历 Kotlin 列表有多种方法。让我们逐一学习:
Using toString() function
fun main() {
val theList = listOf("one", "two", "three", "four")
println(theList.toString())
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[one, two, three, four]
Using Iterator
fun main() {
val theList = listOf("one", "two", "three", "four")
val itr = theList.listIterator()
while (itr.hasNext()) {
println(itr.next())
}
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
one
two
three
four
Size of Kotlin List
我们可以使用 size 属性来计算列表内的元素总数:
fun main() {
val theList = listOf("one", "two", null, "four", "five")
println("Size of the list " + theList.size)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
Size of the list 5
Removing null a List
我们可以使用 filterNotNull() 方法从 Kotlin 列表中移除 null 元素。
fun main() {
val theList = listOf("one", "two", null, "four", "five")
val resultList = theList.filterNotNull()
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[one, two, four, five]
Filtering Elements
我们可以使用 filter() 方法过滤出与给定谓词匹配的元素。
fun main() {
val theList = listOf(10, 20, 30, 31, 40, 50, -1, 0)
val resultList = theList.filter{ it > 30}
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[31, 40, 50]
Dropping First N Elements
我们可以使用 drop() 方法从列表中丢弃前 N 个元素。
fun main() {
val theList = listOf(10, 20, 30, 31, 40, 50, -1, 0)
val resultList = theList.drop(3)
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[31, 40, 50, -1, 0]
Grouping List Elements
我们可以使用 groupBy() 方法对与给定谓词匹配的元素进行分组。
fun main() {
val theList = listOf(10, 12, 30, 31, 40, 9, -3, 0)
val resultList = theList.groupBy{ it % 3}
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
{1=[10, 31, 40], 0=[12, 30, 9, -3, 0]}
Mapping List Elements
我们可以使用 map() 方法使用提供的函数映射所有元素:
fun main() {
val theList = listOf(10, 12, 30, 31, 40, 9, -3, 0)
val resultList = theList.map{ it / 3 }
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[3, 4, 10, 10, 13, 3, -1, 0]
Chunking List Elements
我们可以使用 chunked() 方法从列表中创建给定大小的块。最后一个块可能没有等于块大小的元素,具体取决于列表中的元素总数。
fun main() {
val theList = listOf(10, 12, 30, 31, 40, 9, -3, 0)
val resultList = theList.chunked(3)
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[[10, 12, 30], [31, 40, 9], [-3, 0]]
Windowing List Elements
我们可以使用 windowed() 方法创建元素范围列表,通过将固定大小的滑动窗口移过元素集合来实现。
fun main() {
val theList = listOf(10, 12, 30, 31, 40, 9, -3, 0)
val resultList = theList.windowed(3)
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[[10, 12, 30], [12, 30, 31], [30, 31, 40], [31, 40, 9], [40, 9, -3], [9, -3, 0]]
默认情况下,滑动窗口每次移动一步,但我们可以通过传递自定义步长值来更改此设置:
fun main() {
val theList = listOf(10, 12, 30, 31, 40, 9, -3, 0)
val resultList = theList.windowed(3, 3)
println(resultList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[[10, 12, 30], [31, 40, 9]]
Kotlin mutable List
我们可以使用 mutableListOf() 创建可变列表,稍后我们可以使用 add() 向同一列表中添加更多元素,并且可以使用 remove() 方法从列表中移除元素。
fun main() {
val theList = mutableSetOf(10, 20, 30)
theList.add(40)
theList.add(50)
println(theList)
theList.remove(10)
theList.remove(30)
println(theList)
}
当你运行上述 Kotlin 程序时,它将生成以下输出:
[10, 20, 30, 40, 50]
[20, 40, 50]