stream流带条件去重求最大值
可以使用Java 8中的Stream流来实现带条件去重求最大值。
假设有一个包含整数的List,要求去重后找出其中大于10的最大值,可以按照以下步骤实现:
- 使用stream()方法将List转换为Stream流。
- 使用distinct()方法对流进行去重操作。
- 使用filter()方法筛选出大于10的元素。
- 使用max()方法求取最大值。
- 使用orElse()方法设置最大值的默认值,以防流为空。
下面是完整的示例代码:
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, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15);
int max = numbers.stream()
.distinct()
.filter(n -> n > 10)
.max(Integer::compareTo)
.orElse(Integer.MIN_VALUE);
System.out.println("最大值:" + max);
}
}
输出结果为:
最大值:15
在上面的示例中,原始的List中包含重复的元素,通过调用distinct()方法进行去重。然后使用filter()方法筛选出大于10的元素。最后,使用max()方法求取最大值,如果流为空,则使用orElse()方法设置默认值为Integer.MIN_VALUE
原文地址: https://www.cveoy.top/t/topic/iCLu 著作权归作者所有。请勿转载和采集!