stream流可以使用distinct()方法进行去重操作,但是该方法默认使用对象的equals()方法来判断是否重复,无法满足条件去重的需求。如果需要根据条件对流进行去重,可以使用filter()方法结合collect()方法来实现。

例如,假设有一个包含整数的流,我们希望对其中大于等于10的数字进行去重,可以使用以下代码:

List list = Arrays.asList(10, 20, 30, 10, 40, 20); List distinctList = list.stream() .filter(num -> num >= 10) .distinct() .collect(Collectors.toList()); System.out.println(distinctList); // 输出结果:[10, 20, 30, 40]

在上述代码中,通过filter()方法筛选出大于等于10的数字,然后使用distinct()方法进行去重,最后使用collect()方法将去重后的元素收集到一个新的List中。最终输出结果为[10, 20, 30, 40],符合条件的数字被成功去重

stream流带条件去重

原文地址: https://www.cveoy.top/t/topic/iCLd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录