stream流中max的用法
时间: 2023-09-14 17:05:04 浏览: 165
在 Java 中,Stream 是一种处理集合(集合、数组等)的数据的方式。max 是 Stream 中的一个终止操作,用于获取集合中的最大值。具体用法如下:
1. 获取集合中的最大值:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int max = list.stream().max(Integer::compareTo).get();
System.out.println(max); // 输出 5
```
2. 获取对象集合中某个属性的最大值:
假设有一个 `Person` 类,其中有一个 `age` 属性,我们需要获取 `Person` 对象集合中 `age` 属性的最大值。
```java
List<Person> people = Arrays.asList(
new Person("张三", 20),
new Person("李四", 25),
new Person("王五", 18)
);
int maxAge = people.stream().mapToInt(Person::getAge).max().getAsInt();
System.out.println(maxAge); // 输出 25
```
其中,`mapToInt` 方法可以将 `Stream<Person>` 转换为 `IntStream`,然后调用 `max` 方法获取最大值。
注意,调用 `max` 方法需要注意集合是否为空,否则会抛出 `NoSuchElementException` 异常。
阅读全文