当前位置: 首页 > 知识库问答 >
问题:

Java 8查找最大值[重复]

卞坚成
2023-03-14

我使用max()查找列表中的最大值,但是下面的代码返回4,尽管最大值是90

List<Integer> list = new ArrayList<>(Arrays.asList(4,12,19,10,90,30,60,17,90));
System.out.println(list.stream().max(Integer::max).get());

共有1个答案

柯琛
2023-03-14

流#max(比较器)接受比较器。您需要使用integer#compare(int,int)作为比较函数。

list.stream().max(Integer::compare).get()

您提供了整数#max(int,int)作为比较器#compare(int,int)的实现。该方法不符合comparator#compare的要求。它不返回指示哪个最大的值,而是返回最大的值。

 类似资料: