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

时间:2015-06-26 23:06:49

标签: java list java-8 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元素。

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

2 个答案:

答案 0 :(得分:17)

为了简化操作,您应该使您的年龄Integerint代替Sting,但由于您的问题是String age,因此此答案将基于String类型

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

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

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

答案 1 :(得分:0)

最大age

   testList.stream()
            .mapToInt(Test::getAge)
            .max();

分钟age

   testList.stream()
            .mapToInt(Test::getAge)
            .min();