一个list对象集合,怎么取出其中某个对象的某个属性最值
时间: 2024-02-17 22:03:02 浏览: 74
可以使用 Java8 的 Stream API 来实现。具体步骤如下:
1. 使用 Stream API 将 List 转换为 Stream 对象,例如:
```
List<MyObject> list = ...;
Stream<MyObject> stream = list.stream();
```
2. 使用 map 方法将 Stream 中的元素映射为属性值的 Stream,例如:
```
Stream<Integer> propertyStream = stream.map(MyObject::getProperty);
```
其中 MyObject::getProperty 表示将 MyObject 对象映射为其属性值。
3. 使用 max 或 min 方法获取属性值的最大或最小值,例如:
```
int maxProperty = propertyStream.max(Comparator.naturalOrder()).orElse(0);
int minProperty = propertyStream.min(Comparator.naturalOrder()).orElse(0);
```
其中 Comparator.naturalOrder() 表示自然排序,orElse(0) 表示如果 Stream 为空,则返回 0。
最后,根据需要选择获取最大值还是最小值即可。
完整代码如下:
```
List<MyObject> list = ...;
int maxProperty = list.stream().map(MyObject::getProperty).max(Comparator.naturalOrder()).orElse(0);
int minProperty = list.stream().map(MyObject::getProperty).min(Comparator.naturalOrder()).orElse(0);
```
其中 MyObject 是包含属性的对象,getProperty 是获取属性的方法,可以根据实际情况进行修改。
阅读全文