Mah*_*aha 5 java java-8 java-stream
说我有以下列表列表"
List l1 = Arrays.asList(1,2,3,4);
List l2 = Arrays.asList(1,2,3,4,5);
List l3 = Arrays.asList(1,2,3,4,5,6);
List<List> lists = Arrays.asList(l1,l2,l3);
Run Code Online (Sandbox Code Playgroud)
如何使用Java 8流API了解最大列表的大小?我想,这样的事情会起作用:
lists.stream().reduce(Integer.MIN_VALUE, (a,b) -> Integer.max(a.size(), b.size()));
Run Code Online (Sandbox Code Playgroud)
但由于显而易见的原因,它给了我:
Type mismatch: cannot convert from int to List
Run Code Online (Sandbox Code Playgroud)
如何使用Java 8流进行上述操作?(如果还有其他更好的方法可行)
我也可以参考最大尺寸的列表吗?
ern*_*t_k 13
你可以打电话max:
lists.stream().mapToInt(List::size).max().getAsInt()
Run Code Online (Sandbox Code Playgroud)
并获取最大尺寸的列表:
lists.stream().max(Comparator.comparing(List::size)).get()
Run Code Online (Sandbox Code Playgroud)
如果您只需要知道大小,而不是列表本身.
List l1 = Arrays.asList(1,2,3,4);
List l2 = Arrays.asList(1,2,3,4,5);
List l3 = Arrays.asList(1,2,3,4,5,6);
List<List> lists = Arrays.asList(l1,l2,l3);
lists.stream().map(List::size).max(Comparator.naturalOrder()).get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1137 次 |
| 最近记录: |