stream流多条件去重求最大值
要实现流多条件去重求最大值,可以按照以下步骤进行操作:
- 使用
filter方法根据条件过滤流中的元素。 - 使用
distinct方法去除重复的元素。 - 使用
max方法求取流中的最大值。
下面是一个具体的示例代码:
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1);
int max = numbers.stream()
.filter(n -> n % 2 == 0) // 过滤偶数
.distinct() // 去重
.max(Integer::compareTo) // 求最大值
.orElse(0); // 如果流为空,返回0
System.out.println("最大值:" + max);
}
}
在上述示例代码中,我们首先创建了一个包含重复元素的整数列表numbers。然后,我们使用流的filter方法过滤出偶数,再使用distinct方法去除重复元素,最后使用max方法求取流中的最大值。如果流为空,我们使用orElse方法返回默认值0。
输出结果为:
最大值:8
在这个例子中,我们过滤出偶数,去除重复元素后,最大值为8
原文地址: https://www.cveoy.top/t/topic/iCKU 著作权归作者所有。请勿转载和采集!