假设我使用java 8流将int []nums
转换为List<Integer>
,
List<Integer> l = Arrays.stream(nums).mapToObj(i->i).collect(Collectors.toList())
也就是说,我想看到一个独立的操作,如果List<Integer>
中的所有元素都有一个值,比如5
,我可以这样做,我认为boolean match = list.stream().allMatch(s -> s.equals(list.get(5)));
我如何合并2在Arrays.stream()
期间不仅要将其转换为List<Integer>
,而且所有元素的轨迹都相同?
3条答案
按热度按时间envsm3lx1#
不能从流中返回多个类型。因此,您需要将信息存放在类或其他结构中(例如,这里我创建一个类来保存结果。
SummaryStatistics
做类似的事情。指纹
add()
方法将值添加到列表中,如果item
与添加的first
值匹配,则增加count。count
默认为1
。它还返回this
以简化reduce
方法,因为累加器预期返回更新后的值。allAreTheSame()
返回boolean
,该值是将计数与列表大小进行比较得到的。8i9zcol22#
您可以使用teeeing收集器同时执行这两项任务。例如:
但你可以不代表你应该
不把给予两种完全不同的结果的合并结合起来,而是分开来做,这要容易理解得多,也干净得多。没有什么不对的:
omvjsjqw3#
我想你可以把 null 赋值给 l,如果 nums 不全是 5 的话。