使用Java 8流计算两个值之间的差异并返回最小值

一个名字:

我有一个具有姓名和年龄的人类:

public class Person {
    private int age;
    private String name;
}

有一个人列表和一个特定的人X,我想知道按年龄最接近X的人Y(即X.age-Y.age是与所有其他人进行比较的最小值):

public class Test {
    List<Pearson> persons // suppose this list contains elements

    public int calculate (Person p1, Person p2) {
        return  Math.abs(p1.getAge() - p2.getAge());
    }

    public Person process(Perosn X) {
        int nearest persons.stream()... // need help
    }
}

我想使用Stream API,但我不知道如何,我尝试了reduce,但是它不起作用。有人可以帮忙吗?

Oleksandr Pyrohov:

找到两个数字之间的最小差:

public Person process(Person px) {
    int age = px.getAge();
    return persons.stream()
                  .filter(p -> !p.equals(px))
                  .min(Comparator.comparingInt(p -> Math.abs(p.getAge() - age)))
                  .orElse(null);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java的8可选:两个null值之间选择

如何使用JAVA流8必要时修改某些值合并的POJO两个列表

计算Java 8中两个日期之间的天数

使用Java8流API从集合中删除最大值(或最小值)

计算两个Java日期实例之间的差异

使用两个数组的最小值创建两个数组的矩阵

Java:两个列表之间的差异

如何使用PHP计算两个日期之间的差异?

使用Python的max在数据框的各列之间返回两个相等的大值

如何使用Java流计算两个聚合函数?

SQL使用第二个表中的最小值联接两个表

JAVA 8:计算两个日期之间的特定天数

使用数学计算两个日期之间的差异

使用两个聚合函数-同一查询上的最小值和最大值

如何使用熊猫查找两个日期之间的最小值并将其放入新列

包含两个熊猫列之间差异的最小值的行-无groupby

如何计算两个java.sql.Time值之间的差异?

如何使用MongoDB的聚合管道从集合中的两个子文档中返回最小值?

两个日期之间的月份插值,并使用每个月的固定值计算总和

如何使用最小值库为左右声道创建两个FFT对象以进行处理

Excel使用两个比较值返回外部值

在Java中计算最小值和最大值?

Java 8 计算最小值

在 Matlab 中找到固定区间上的两个变量函数的最小值和最大值,并使用该函数在同一图中绘制这些点

在 Python 中使用 statsmodels 和 PyMC3(MCMC 模拟)估计两个比例之间差异的 p 值

在java中查找两个数组之间的公共最小值

使用代码查找 numpy 数组中两个值之间的差异

如何计算两个表的日期的最小值?

使用haskell根据两个相邻位置中另一个字段的值之间的差异计算字段的值