java stream一次 循环获取对象中同时获取最大值和最小值的ID属性
你可以使用min()和max()方法来获取流中的最小和最大值,然后使用mapToInt()方法将对象的ID属性映射为整数流,最后使用findFirst()和findAny()方法获取最小和最大值的ID属性。
下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
import java.util.OptionalInt;
class MyClass {
private int id;
public MyClass(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
public class Main {
public static void main(String[] args) {
List<MyClass> myList = new ArrayList<>();
myList.add(new MyClass(1));
myList.add(new MyClass(3));
myList.add(new MyClass(5));
myList.add(new MyClass(2));
OptionalInt minId = myList.stream()
.mapToInt(MyClass::getId)
.min();
OptionalInt maxId = myList.stream()
.mapToInt(MyClass::getId)
.max();
if (minId.isPresent()) {
System.out.println("Minimum ID: " + minId.getAsInt());
} else {
System.out.println("No minimum ID found");
}
if (maxId.isPresent()) {
System.out.println("Maximum ID: " + maxId.getAsInt());
} else {
System.out.println("No maximum ID found");
}
}
}
这段代码会输出:
Minimum ID: 1
Maximum ID: 5
``
原文地址: http://www.cveoy.top/t/topic/hzvw 著作权归作者所有。请勿转载和采集!