在 kotlin 中从两个列表创建地图的最佳方法

问题描述 投票:0回答:1

如果这是一个愚蠢的问题,我深表歉意,因为我很确定这很简单,但我正在努力寻找一种干净的方法来从两个列表创建地图。

我很确定我可以只做一个 for 循环并迭代每个循环,但我想检查是否有一种方法可以在视觉上更具吸引力。

例如:

val list1 = listOf("One", "Two", "Three")
val list2 = listOf(1, 2, 3)
//result would be => {One=1, Two=2, Three=3}
list kotlin maps
1个回答
0
投票

注意:这假设您已经检查两个列表是否包含相同数量的元素。

您可以使用 zip 函数创建

List<Pair<String, Int>>
,然后在生成的对列表上使用 toMap
zip
函数生成的列表将具有较小列表的大小。

val list1 = listOf("One", "Two", "Three")
val list2 = listOf(1, 2, 3)

val myMap = list1.zip(list2).toMap()

如果您需要对任一术语应用任何转换,您可以使用 associate。作为示例,这里我们将字符串写入 uppercare 并递增整数。

val myMap = list1.zip(list2).associate { it.first.uppercase() to it.second + 1 }
© www.soinside.com 2019 - 2024. All rights reserved.