如何使用 Java 8 从对象列表中获取最小值和最大值

2022-01-22 00:00:00 list java-8 java java-stream

我有这样的课:

public class Test {
    private String Fname;
    private String Lname;
    private String Age;
    // getters, setters, constructor, toString, equals, hashCode, and so on
}

和一个类似 List<Test> 的列表testList 填充了 Test 元素.

and a list like List<Test> testList filled with Test elements.

如何使用 Java 8 获取 age 的最小值和最大值?

How can I get minimum and maximum value of age using Java 8?

推荐答案

为了简化事情,您可能应该将您的年龄设为 Integerint 而不是 Sting,但由于您的问题是关于 String age 这个答案将基于 String 类型.

To simplify things you should probably make your age Integer or int instead of Sting, but since your question is about String age this answer will be based on String type.

假设 String age 持有表示整数范围内值的字符串,您可以简单地将其映射到 IntStream 并使用它的 IntSummaryStatistics 之类的

Assuming that String age holds String representing value in integer range you could simply map it to IntStream and use its IntSummaryStatistics like

IntSummaryStatistics summaryStatistics = testList.stream()
        .map(Test::getAge)
        .mapToInt(Integer::parseInt)
        .summaryStatistics();

int max = summaryStatistics.getMax();
int min = summaryStatistics.getMin();

相关文章