文
章
目
录
章
目
录
Stream min() 方法用于根据用于比较元素的 Comparator 选择 Stream 中的最小元素。Comparator 对 Stream 元素施加一个完全排序,这可能不是自然的排序。
1.方法语法
- 该方法采用一个非干扰的、无状态的 Comparator 来比较 stream 的元素。
- 它返回一个描述流中最大元素的 Optional,如果流为空,则返回一个空的 Optional。
- 如果找到的最小元素为 null,则 min() 方法将抛出 NullPointerException。
Optional<T> min(Comparator<? super T> comparator)
2.描述
- 这是一个终端操作。因此,在该方法执行后,stream 无法再使用。
- 根据提供的 Comparator 返回此 stream 的最小/最小元素。这是一种特殊类型的 stream 归约。
- 该方法参数应是非干扰的、无状态的 Comparator。
- 该方法返回描述此流最小元素的 Optional,如果流为空,则返回一个空的 Optional。
- 如果最小的元素为 null,则可能抛出 NullPointerException。
3.Stream min() 示例
示例 1:使用 Lambda 表达式查找最小的元素Java 示例
使用 comparator 作为 lambda 表达式从数字流中查找最小数字。
List<Integer> list = Arrays.asList(2, 4, 1, 3, 7, 5, 9, 6, 8);
Optional<Integer> minNumber = list.stream()
.min((i, j) -> i.compareTo(j));
System.out.println(minNumber.get()); //1
示例 2:使用 Comparator 查找最小的元素Java 示例
使用自定义 comparator 从数字流中查找最小数字。
List<Integer> list = Arrays.asList(2, 4, 1, 3, 7, 5, 9, 6, 8);
Comparator<Integer> minComparator = new Comparator<Integer>() {
@Override
public int compare(Integer n1, Integer n2) {
return n1.compareTo(n2);
}
};
Optional<Integer> minNumber = list.stream()
.min(minComparator);
System.out.println(minNumber.get()); //1