Stream max() 方法
方法语法
该方法采用无干扰、无状态的 Comparator 来比较流的元素。
它返回一个 Optional 描述流的最大元素,如果流为空,则返回一个空的 Optional
。
如果找到的最大元素为 null
,max()
方法将抛出 NullPointerException。
Optional<T> max(Comparator<? super T> comparator)
说明
max()
方法是一个终端操作。所以这个方法执行完后Stream就不能使用了。- 它根据提供的
Comparato
r 返回此流的最大/最大元素。 - 这是流减少的特例。
- 方法参数应为无干扰、无状态的“Comparator”。
- 该方法返回一个描述此流的最大元素的 Optional ,如果流为空,则返回一个空的
Optional
。 - 如果最大元素为
null
,它可能会抛出 NullPointerException。
欢迎来到之路教程(on itroad-com)
Java Stream max() 示例
使用Lambda 表达式找出流中的最大元素
import java.util.Arrays; import java.util.List; import java.util.Optional; public class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(2, 4, 1, 3, 7, 5, 9, 6, 8); Optional<Integer> maxNumber = list.stream() .max((i, j) -> i.compareTo(j)); System.out.println(maxNumber.get()); } }
使用比较器找出 Stream流中的最大元素
import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Optional; public class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(2, 4, 1, 3, 7, 5, 9, 6, 8); Comparator<Integer> maxComparator = new Comparator<Integer>() { @Override public int compare(Integer n1, Integer n2) { return n1.compareTo(n2); } }; Optional<Integer> maxNumber = list.stream() .max(maxComparator); System.out.println(maxNumber.get()); } }
Stream max() 方法用于根据用于比较元素的 Comparator ,选择 Stream
中最大的元素。
Comparator
对可能没有自然排序的 Stream 元素强加总排序。
日期:2020-09-17 00:10:05 来源:oir作者:oir