Java Stream 一次循环获取对象中最大值和最小值 ID 属性
您可以使用 reduce 操作来一次循环获取最大值和最小值的 ID 属性。假设您有一个名为 objects 的 List 对象,其中包含了要处理的对象。您可以按以下方式实现:
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()
.map(MyObject::getId) // 提取 ID 属性
.reduce(Integer::max); // 使用 reduce 操作获取最大值
Optional<Integer> minId = objects.stream()
.map(MyObject::getId) // 提取 ID 属性
.reduce(Integer::min); // 使用 reduce 操作获取最小值
if (maxId.isPresent()) {
System.out.println("最大 ID:" + maxId.get());
}
if (minId.isPresent()) {
System.out.println("最小 ID:" + minId.get());
}
}
}
class MyObject {
private int id;
// getter 和 setter 方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
在上述代码中,我们首先使用 map 操作将对象列表中的每个对象转换为其 ID 属性,然后使用 reduce 操作获取最大值和最小值。最终,我们使用 Optional 类来处理可能不存在的最大值和最小值。
请注意,上述代码假设 MyObject 类具有一个名为 getId 的方法,用于获取对象的 ID 属性。您需要根据您的实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/o2if 著作权归作者所有。请勿转载和采集!