我有一个<Integer, Set<Integer>>
的hashMap。
我希望使用Java流操作获取元素数量最大的Set。
以下是我的示例:
public class Example {
public static void main( String[] args ) {
Map<Integer,Set<Integer>> adj = new HashMap<>();
Set<Integer> set1 = Stream.of(1,2,3).collect(Collectors.toSet());
Set<Integer> set2 = Stream.of(1,2).collect(Collectors.toSet());
adj.put(1,set1);
adj.put(2,set2);
}
}
我尝试过这个方法:
Collections.max(adj,Comparator.comparingInt(Set::size));
但是我因为Set接口中的size()方法不是静态方法而得到编译错误。
通常情况下,我们应该得到最大大小为3的集合。
… .mapToInt(Set::size).max() …
... .mapToInt(Set::size).max() ...
- Holger