我有一个流,它接受一个对象列表,并通过按 ID 对它们进行分组并计算每个元素的重复次数来创建一个映射。但是,在关闭流并返回地图之前,我需要检查另一张地图(我已经拥有)中的所有 ID(键)是否都存在于新地图中,如果没有,我必须使用默认值 0 添加它们。在同一流中执行此类操作很重要,因为我正在努力学习并且真的希望使代码尽可能紧凑和可读。
以下是代码的第一部分,我现在需要检查其他地图中的哪些 ID 不存在于新创建的地图中,并将它们的值添加为 0。
return bookings.stream()
.collect(Collectors.groupingBy(a -> a.getID(), Collectors.counting()));
编辑:
澄清一下,这是我需要做的,但我想在原始流中执行以下所有操作。
Map<Integer,Long> res = bookings.stream()
.collect(Collectors.groupingBy(a -> a.getID(), Collectors.counting()));
map2.keySet().stream().forEach(r -> res.putIfAbsent(r,0L));
return res;
ITMISS
相关分类