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

How to get minimum and maximum value from List of Objects using Java 8(如何使用 Java 8 从对象列表中获取最小值和最大值)

本文介绍了如何使用 Java 8 从对象列表中获取最小值和最大值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的课:

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();

这篇关于如何使用 Java 8 从对象列表中获取最小值和最大值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何使用 Java 8 从对象列表中获取最小值和最大值