我正在使用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