将列表 和列表 合并到列表 >

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

我有两个清单;

val keys: List<String> = listOf("key1", "key2", "key3"...)
val values: List<String> = listOf("value1", "value2", "value3"...)

我如何将它们合并为一个List<Hashmap<Key,Value>>?喜欢;

println(List<Hashmap<Key,Value>>):[[key1 = value1],[key2 = value2],[key3 = value3] ...

java list dictionary kotlin collectors
1个回答
0
投票

[不确定为什么要创建List<HashMap<...>>,但基本上看起来像是要“压缩”到列表中...

下面是使用java8流的示例。使用诸如番石榴之类的第三方库,您将获得更简洁的语法,但从本质上讲,它会做到这一点。

根据https://www.baeldung.com/java-collections-zip改编以匹配当前问题:

List<String> keys = List.of("key1", "key2", "key3");
List<String> values = List.of("value1", "value2", "value3");

Map<String, String> keyValueMap = IntStream.range(0, Math.min(keys.size(), values.size()))
    .boxed()
    .collect(Collectors.toMap(i -> keys.get(i), i -> values.get(i)));

如果需要,请在地图外创建一个列表:

List<Map<String, String>> list = List.of(keyValueMap);

0
投票

我本来会这样。创建自己的课程

class MyMap{
   String key;
   String value;
}

然后是>>

 List<MyMap> newList = new ArrayList<>();
for (int i=0;i<keys.size();i++){
      newList.add(new MyMap(keys.get(i),values.get(i)));
 }
© www.soinside.com 2019 - 2024. All rights reserved.