在Java中使用stream().collect创建由2个列表组成的Map
2022-09-02 12:00:22
例如,有两个列表:
List<Double> list1 = Arrays.asList(1.0, 2.0);
List<String> list2 = Arrays.asList("one_point_zero", "two_point_zero");
使用 Stream,我想创建一个由这些列表组成的映射,其中 list1 表示键,list2 表示值。为此,我需要创建一个辅助列表:
List<Integer> list0 = Arrays.asList(0, 1);
这是地图:
Map<Double, String> map2 = list0.stream()
.collect(Collectors.toMap(list1::get, list2::get));
list0 用于 list1::get 和 list2::get to work 的顺序。有没有更简单的方法而不创建list0?我尝试了以下代码,但它不起作用:
Map<Double, String> map2 = IntStream
.iterate(0, e -> e + 1)
.limit(list1.size())
.collect(Collectors.toMap(list1::get, list2::get));