我有两个清单;
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] ...
[不确定为什么要创建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);
我本来会这样。创建自己的课程
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)));
}