Ali*_*Urz 3 java functional-programming kotlin
var listOfNums = listOf(1,9,8,25,5,44,7,95,9,10)
var mapOfNums = listOfNums.map { it to it+1 }.toMap()
println(mapOfNums)
Run Code Online (Sandbox Code Playgroud)
结果
{1=2, 9=10, 8=9, 25=26, 5=6, 44=45, 7=8, 95=96, 10=11}
Run Code Online (Sandbox Code Playgroud)
虽然我需要这个结果,但是当我需要将当前元素映射到下一个元素时,它会将下一个元素的内容添加到当前元素
我的目标结果
{1=9, 8=25, 5=44, 7=59, 9=10}
Run Code Online (Sandbox Code Playgroud)
对于Kotlin 1.1:
首先,使用zip创建一个包含相邻对的列表.然后你把所有其他一对丢弃,然后再转换为Map.像这样:
val list = listOf(1,9,8,25,5,44,7,95,9,10)
val mapOfNums = list.zip(list.drop(1))
.filterIndexed { index, pair -> index % 2 == 0 }
.toMap())
Run Code Online (Sandbox Code Playgroud)
对于Kotlin 1.2:
Kotlin 1.2带来的chunked功能将使这更容易一些.此函数将列表分为给定长度的子列表.然后你可以这样做:
val list = listOf(1,9,8,25,5,44,7,95,9,10)
val mapOfNums = list.chunked(2).associate { (a, b) -> a to b }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |