Cin*_*com 1 dictionary list kotlin collectors
我有两个清单;
val keys: List<String> = listOf("key1", "key2", "key3"...)
val values: List<String> = listOf("value1", "value2", "value3"...)
Run Code Online (Sandbox Code Playgroud)
我怎样才能将它们合二为一List<Hashmap<Key,Value>>?喜欢;
println(List<Hashmap<Key,Value>>): [[key1 = value1], [key2 = value2], [key3 = value3]...
在惯用的 Kotlin 中,这看起来像这样:
val keys: List<String> = listOf("key1", "key2", "key3")
val values: List<String> = listOf("value1", "value2", "value3")
val result = keys.zip(values).map { hashMapOf(it) }
Run Code Online (Sandbox Code Playgroud)
在这里,hashMapOf(...)接受对 ( Pair<K, V>),这正是zip产生的元素。
或者,您可以使用zip接受 lambda的重载并映射对,而无需额外调用map:
val result = keys.zip(values) { k, v -> hashMapOf(k to v) }
Run Code Online (Sandbox Code Playgroud)
结果是一个映射列表,每个映射包含一个映射到值的键。
一个相反的选择是创建一个包含所有对的单一地图,可以按如下方式生成:
val result = HashMap(keys.zip(values).toMap())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |