【发布时间】:2018-03-24 19:05:26
【问题描述】:
我正在从原始集 (Set<Integer>) 生成一个功率集 (Set<Set<Integer>>)。
即{1, 2, 3} -> { {}, {1}, {2}, {3}, {1,2}, {2,3}, {1,3}, {1,2,3} }
然后我使用isClique(Set<Integer>) 方法,如果给定集合是我正在使用的邻接矩阵中的clique,则返回布尔值。
我想使用 java 流来并行化这个操作并返回最大的子集,它也是一个 clique。
我在想这样的事情,但是我想出的每个变体都会导致各种编译错误。
Optional result = powerSet.stream().parallel().
filter(e ->{return(isClique(e));}).
collect(Collectors.maxBy(Comparator Set<Integer> comparator));
我要么得到:
MaxClique.java:86: error: incompatible types: Stream<Set<Integer>> cannot be converted to Set<Integer>
currentMax = powerSet.stream().parallel().filter(e -> { return (isClique(e));});//.collect(Collectors.maxBy(Comparator <Set<Integer>> comparator));
或与比较器相关的东西(我不确定我做得是否正确)。
请指教,谢谢。
【问题讨论】:
-
Comparator Set<Integer> comparator- 这似乎不是有效的 Java 代码。 -
这可能是一个很好的问题,但我们需要更多关于您想要实现的目标的详细信息,并为每个不同的错误消息显示产生它的代码。就目前而言,这还不清楚,因此离题了。
-
转换使用的类型错误。
标签: java parallel-processing set java-stream powerset