Java 8找到最大
我使用max()
来查找列表中的最大值,但下面的代码返回4
尽管最大值为90
。
List list = new ArrayList(Arrays.asList(4,12,19,10,90,30,60,17,90)); System.out.println(list.stream().max(Integer::max).get());
Stream#max(Comparator)
需要一个Comparator
。 您将要使用Integer#compare(int, int)
作为该比较函数。
list.stream().max(Integer::compare).get()
您提供了Integer#max(int, int)
作为Comparator#compare(int, int)
。 该方法与Comparator#compare
的要求不匹配。 它不返回指示哪个值最大的值,而是返回最大值。
您需要在intStream上调用map
System.out.println(list.stream().mapToInt(Integer::intValue).max().getAsInt());
目前,您的代码只返回列表中的第一个值,即您的情况下为4
- 在Struts 2中,值没有从jsp绑定到action类
- Spring session + Spring web socket。 根据会话ID将消息发送到特定客户端
- 如何在java中使用opengl中的字体?
- 如何将MouseListener添加到框架
- 在生产服务器上启用jmx(lambda探针)是个好主意吗?
- 如何使用CMU Sphinx 4将语音转换为带有英语voxforge模型的文本
- Mac OS无法打开TopCoder Arena
- Java相当于C#的Rfc2898DerivedBytes
- 如何使用HttpURLConnection和Java中的CookieManager为每个连接使用不同的cookie