如果这是一个愚蠢的问题,我深表歉意,因为我很确定这很简单,但我正在努力寻找一种干净的方法来从两个列表创建地图。
我很确定我可以只做一个 for 循环并迭代每个循环,但我想检查是否有一种方法可以在视觉上更具吸引力。
例如:
val list1 = listOf("One", "Two", "Three")
val list2 = listOf(1, 2, 3)
//result would be => {One=1, Two=2, Three=3}
注意:这假设您已经检查两个列表是否包含相同数量的元素。
您可以使用 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 }