Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并两个Long类型的列表并添加到Java8中的现有映射_Java_Lambda_Collections_Java 8_Java Stream - Fatal编程技术网

合并两个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);