List<Object> java stream().max使用示例
时间: 2023-08-07 17:03:22 浏览: 382
最大流的java实现
如果你有一个对象列表,你也可以使用 `max()` 方法来找到其中的最大值,例如:
```java
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 20)
);
Optional<Person> oldestPerson = people.stream().max(Comparator.comparing(Person::getAge));
System.out.println("Oldest person: " + oldestPerson.get().getName());
```
这个代码片段将会输出 `Oldest person: Bob`,因为 Bob 是列表中年龄最大的人。
在这个示例中,我们首先定义了一个 Person 类,它有两个属性:姓名和年龄。然后我们创建了一个 Person 对象列表,并使用 `max()` 方法来找到年龄最大的人。`max()` 方法接受一个 Comparator 参数,这里我们使用 `Comparator.comparing()` 方法来创建一个比较器,比较 Person 对象的年龄属性。最后,`max()` 方法返回一个 Optional 对象,我们可以通过调用 `get()` 方法来获取 Optional 中的值,如果 Optional 为空,`get()` 方法会抛出一个异常。
需要注意的是,在使用 `max()` 方法时,列表中的元素必须实现 Comparable 接口或者提供一个 Comparator 来进行比较。如果列表中的元素没有实现 Comparable 接口,并且也没有提供比较器,那么 `max()` 方法会抛出一个异常。
阅读全文