合并两个Long类型的列表并添加到Java8中的现有映射
我有两个长型列表,比如合并两个Long类型的列表并添加到Java8中的现有映射,java,lambda,collections,java-8,java-stream,Java,Lambda,Collections,Java 8,Java Stream,我有两个长型列表,比如ListA和ListB 我想把它们合并成一个映射,这样ListA成为键,ListB成为值。 这里,我想将这些键值对添加到现有映射中 我知道如何解析列表并返回一个新的映射对象(使用Collectors.toMap)。我的问题是添加到现有地图,可能类似于: Map<Long, Long> map = new HashMap<Long, Long>; // ... entries added to map ListA.stream().forEach(a
ListA
和ListB
我想把它们合并成一个映射
,这样ListA
成为键,ListB
成为值。
这里,我想将这些键值对添加到现有映射中
我知道如何解析列表并返回一个新的映射对象(使用Collectors.toMap
)。我的问题是添加到现有地图,可能类似于:
Map<Long, Long> map = new HashMap<Long, Long>;
// ... entries added to map
ListA.stream().forEach(a -> {
map.put(a, <get 0th element of ListB somehow>);
});
Map Map=newhashmap;
// ... 添加到地图的条目
ListA.stream().forEach(a->{
地图。放(a,);
});
提前谢谢 试试这个选项:
Map<Long, Long> map = new HashMap<>();
IntStream.range(0, ListA.size())
.forEach(i -> {
map.put(ListA.get(i), ListB.get(i));
});
它简洁易懂,易于阅读和维护,不会让任何人对您的代码产生反感。假设这些列表的大小相同:
Map<Long, Long> map = IntStream.range(0, listA.size())
.boxed()
.collect(Collectors.toMap(listA::get, listB::get));
yourOtherMap.putAll(map);
Map Map=IntStream.range(0,listA.size())
.boxed()
.collect(Collectors.toMap(listA::get,listB::get));
yourOtherMap.putAll(map);
@TimBiegeleisen我在这里做最后一点评论,我开始这个节日是因为你说我是java-8新手,想提供正确的方向(做一个你认识的好人)。那次刮伤的关键词是如果
Map<Long, Long> map = IntStream.range(0, listA.size())
.boxed()
.collect(Collectors.toMap(listA::get, listB::get));
yourOtherMap.putAll(map);