stream流对集合进行筛选,获取对象中某个字段值最小的返回,该字段类型是BigDecimal
时间: 2024-09-21 14:06:48 浏览: 42
在Java中,可以使用Stream API配合`min()`函数以及`Comparator`来从集合中筛选出对象中某字段值最小的,假设这个字段是BigDecimal类型的。首先,你需要创建一个自定义的比较器,以便于BigDecimal的比较:
```java
import java.util.Comparator;
import java.util.stream.Stream;
class YourObject {
private BigDecimal fieldOfInterest;
// getters and setters...
public BigDecimal getFieldOfInterest() {
return fieldOfInterest;
}
}
// 创建一个YourObject列表
List<YourObject> objects = ...;
// 自定义比较器
Comparator<YourObject> comparator = Comparator.comparing(YourObject::getFieldOfInterest);
// 使用stream过滤并找到最小值
Optional<YourObject> minObject = objects.stream()
.filter(Objects::nonNull) // 如果有null需要先过滤掉
.min(comparator);
if (minObject.isPresent()) {
YourObject smallestObject = minObject.get();
System.out.println("Smallest object's field value: " + smallestObject.getFieldOfInterest());
}
阅读全文