【发布时间】:2021-08-27 11:37:17
【问题描述】:
我有一个数组列表
List<Integer> h = Arrays.asList(1,2,3,4,5,6);
我想过滤偶数,然后将它们存储在带有键的映射中,该键是从 1 开始的唯一数字,值是使用 java8 过滤的值
输出1-2 2-4 3-6
我将在收集中使用过滤器和Collectors.toMap()
Map<Integer,Integer> j = h.stream().filter(fe->fe%2==0).collect(Collectors.toMap(?,?));
输出会是什么?
【问题讨论】:
-
我不明白应该如何填充地图。为什么不是 1-2、2-3、3-4?
-
是的,但最后有
3-6不是对号。这就是为什么我不明白 -
哦,是的!谢谢你
-
你可以为你的直播尝试这样的事情,
h.stream().forEach(fe-> {if (fe % 2 == 0) { map.computeIfAbsent(map.size()+1,i->fe); }}); -
somthig 像这样:
int[] counter = new int[1]{1}; ....collect(Collectors.toMap(counter[0]++, value -> value))
标签: java java-8 java-stream