Java Stream 获取对象最大最小值 ID - 一次循环高效实现
可以使用 Java 8 的 Stream API 来实现一次循环获取对象中同时获取最大值和最小值的 ID 属性。
假设有一个对象列表,其中包含了一个 ID 属性,可以按照以下方式实现:
import java.util.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
List<MyObject> objects = Arrays.asList(
new MyObject(1),
new MyObject(2),
new MyObject(3),
new MyObject(4),
new MyObject(5)
);
Optional<Integer> maxId = objects.stream()
.map(MyObject::getId)
.max(Integer::compareTo);
Optional<Integer> minId = objects.stream()
.map(MyObject::getId)
.min(Integer::compareTo);
if (maxId.isPresent()) {
System.out.println('Max ID: ' + maxId.get());
}
if (minId.isPresent()) {
System.out.println('Min ID: ' + minId.get());
}
}
}
class MyObject {
private int id;
public MyObject(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
在上面的代码中,我们首先使用map方法将对象列表中的每个对象转换为其 ID 属性,然后使用max和min方法分别获取最大值和最小值的 ID 属性。最后,我们可以使用Optional类来处理可能的空值。
输出结果为:
Max ID: 5
Min ID: 1
这样,我们就在一次循环中同时获取了最大值和最小值的 ID 属性。
原文地址: https://www.cveoy.top/t/topic/o2ip 著作权归作者所有。请勿转载和采集!