我正在使用java流的缩减功能。 我流数据如下:使用缩小功能时返回第一个元素
List<Person> persons =
Arrays.asList(
new Person("Max", 18),
new Person("Peter", 23),
new Person("Pamela", 23),
new Person("David", 12),
new Person("Pam", 23));
我Reduce函数如下:
persons.stream()
.reduce((p1, p2) -> p1.age > p2.age ? p1 : p2)
.ifPresent(System.out::println);
这是我得到的是
帕姆
但我的结果要求是要求彼得,因为它也具有大于o的值thers。
彼得
我怎样才能做到这一点?任何其他替代方法来做到这一点
它不是p1:p2(或反之亦然)而不是p2:p2? –
是它的p1:p2。编辑了这个问题。 – KayV
'.reduce((p1,p2) - > p1.age> = p2.age?p1:p2)'。顺便说一句,就是'.max(Comparator.comparing(p-> p.age))',或者如果你关心性能,'.max(Comparator.comparingInt(p-> p.age) )'。 – Holger