下面是一个示例代码,演示如何使用Java的Stream流和Collectors从List数据中取出特定的Integer类型值,并找出这些值中的最小值:
java Copy code
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
public class StreamMinValueExample {
public static void main(String[] args) {
// 创建包含数据的列表
List<Data> dataList = Arrays.asList(
new Data("A", 10),
new Data("B", 5),
new Data("C", 8),
new Data("D", 4)
);
// 取出特定的Integer类型值,并找出最小值
Optional<Integer> min = dataList.stream()
.map(Data::getValue)
.min(Integer::compareTo);
if (min.isPresent()) {
System.out.println("Min value: " + min.get());
} else {
System.out.println("No minimum value found.");
}
}
static class Data {
private String key;
private Integer value;
public Data(String key, Integer value) {
this.key = key;
this.value = value;
}
public Integer getValue() {
return value;
}
}
}
在上述示例中,我们创建了一个包含数据的列表dataList,其中每个元素包括一个键(key)和一个Integer类型的值(value)。我们使用stream()方法将列表转换为Stream流,并使用map操作将流中的每个元素转换为其对应的值。然后,我们使用min方法和Integer::compareTo比较函数找出这些值中的最小值。
最后,我们通过判断Optional<Integer>对象是否存在来打印出最小值。
输出结果将是:Min value: 4
这表明在列表中的所有Integer类型值被取出,并找到了最小值。
请注意,上述示例中的Data类用于存储键值对。你可以根据实际情况调整类的属性和构造函数。此外,确保在应用中处理可能的空值、错误和异常情况非常重要。