Java Stream 一次循环获取对象中最大值和最小值 ID 属性
可以使用 'Collectors.maxBy' 和 'Collectors.minBy' 方法来获取最大值和最小值的对象,然后再获取其 ID 属性。
假设对象的类为 'MyObject',ID 属性的名字为 'id',对象列表为 'List
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
public class Main {
public static void main(String[] args) {
List<MyObject> objects = ...; // 初始化对象列表
Optional<Integer> maxId = objects.stream()
.max(Comparator.comparingInt(MyObject::getId))
.map(MyObject::getId);
Optional<Integer> minId = objects.stream()
.min(Comparator.comparingInt(MyObject::getId))
.map(MyObject::getId);
if (maxId.isPresent()) {
System.out.println("最大ID:" + maxId.get());
}
if (minId.isPresent()) {
System.out.println("最小ID:" + minId.get());
}
}
}
class MyObject {
private int id;
public MyObject(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
上述代码中,通过 'Comparator.comparingInt(MyObject::getId)' 指定了比较对象的方式,然后使用 'max' 和 'min' 方法来获取最大值和最小值的对象。最后通过 'map(MyObject::getId)' 将对象映射为其 ID 属性。
原文地址: https://www.cveoy.top/t/topic/o2iJ 著作权归作者所有。请勿转载和采集!