java的stream流中如何将list数据的某个Integer类型值取出来并用Collectors将Integer类型的数据找出最小值实例代码?

下面是一个示例代码,演示如何使用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类用于存储键值对。你可以根据实际情况调整类的属性和构造函数。此外,确保在应用中处理可能的空值、错误和异常情况非常重要。