Java 将流分组两次
我有一组字符串数组,如下所示Java 将流分组两次,java,java-stream,Java,Java Stream,我有一组字符串数组,如下所示 new ArrayList<>().addAll( Arrays.asList( new String[]{"foo","bar", "5"}, new String[]{"foo", "bar2", "8"}, new String[]{"foo", "bar", "5"} ) ); 之后,内部值将是数组中第三列的和 我自己尝试这样做时,产生了以下代码: Function<
new ArrayList<>().addAll(
Arrays.asList(
new String[]{"foo","bar", "5"},
new String[]{"foo", "bar2", "8"},
new String[]{"foo", "bar", "5"}
)
);
之后,内部值将是数组中第三列的和
我自己尝试这样做时,产生了以下代码:
Function<String[], String> teste = (row -> row[finalCategoriaColumnIndex]);
Function<String[], String> teste2 = (row -> row[3]);
ToDoubleFunction<String[]> teste3 = (row -> (row -> Double.parseDouble(row[finalValorColumnIndex]));
sqlResult
.getResults()
.parallelStream()
.collect(Collectors.groupingBy(
teste,
Collectors.groupingBy(
teste2,
Collectors.summingDouble(teste3)
)
));
函数teste=(行->行[finalCategoriaColumnIndex]);
函数teste2=(行->行[3]);
ToDoubleFunction teste3=(行->(行->双精度.parseDouble(行[finalValorColumnIndex]));
sqlResult
.getResults()
.parallelStream()
.collect(收集器.groupingBy(
teste,
收集者分组(
测试2,
收集器.总和加倍(测试3)
)
));
但是IntelliJ指控一个错误,我能做什么
编辑:
智能错误
(java.util.stream.Collector,java.util.Map>)
问题在于getHeaders()应该是getResults()。我想我需要一杯咖啡,谢谢你的回答。那么什么是错误?相信IntelliJ。发布你收到的错误消息;也许这会更清楚。你的例子对我来说很难理解。这也许可以解释为什么你遇到麻烦。还有,为什么你在SqlResult.Headers上有parallelStream?真的有这么多的h吗eaders认为将整个并行处理工具初始化以计算double的和是合理的?对不起,我将迭代结果,我的错误对我来说很好,假设
parallelStream()
返回流。
Function<String[], String> teste = (row -> row[finalCategoriaColumnIndex]);
Function<String[], String> teste2 = (row -> row[3]);
ToDoubleFunction<String[]> teste3 = (row -> (row -> Double.parseDouble(row[finalValorColumnIndex]));
sqlResult
.getResults()
.parallelStream()
.collect(Collectors.groupingBy(
teste,
Collectors.groupingBy(
teste2,
Collectors.summingDouble(teste3)
)
));