Ber*_*tuz 1 functional-programming kotlin
假设您要转换此代码:
val initialValues: List<Pair<String, String>>
Run Code Online (Sandbox Code Playgroud)
其中第一个String代表键,第二个String代表值
进入地图:
val finalMap: Map<String,String>
Run Code Online (Sandbox Code Playgroud)
每个对项包含两次,第一个具有原始密钥,第二个具有某种扩展密钥。
你会怎么做?目前,我正在使用
val finalMap = mutableMapOf<String, String>()
Run Code Online (Sandbox Code Playgroud)
我在遍历时使用的代码initialValues。但是我真的不喜欢。
initialValues.forEach {
val explodedPairs:List<Pair<String,String>> = <do-something>
explodedPairs.forEach { finalMap.put(it.first, it.second) }
}
Run Code Online (Sandbox Code Playgroud)
您将如何更果断地做?
您可以像这样使用associate/associateBy
val map1 = initialList.associate { it.first to it.second }
println(map1.toString()) //{1=x, 2=y}
val map2 = initialList.associateBy({it.first},{it.second})
println(map2.toString()) //{1=x, 2=y}
Run Code Online (Sandbox Code Playgroud)
您还可以使用toMap并执行以下操作-
val map3 = initialList.toMap()
println(map3.toString()) //{1=x, 2=y}
Run Code Online (Sandbox Code Playgroud)
这是我的initialList声明-
val initialList = listOf(Pair(1, "x"), Pair(2, "y"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |