我有一个像这样的
字符串数组new ArrayList<>().addAll(
Arrays.asList(
new String[]{"foo","bar", "5"},
new String[]{"foo", "bar2", "8"},
new String[]{"foo", "bar", "5"}
)
);
,我想将此列表分组,生成一个Map<String, Map<String, Double>>
,给出与此
[
{
key:"foo",
value: [
{
key: "bar",
value: 10
},
{
key: "bar2",
value: 8
}
]
}
]
之后,内部值将是数组中第三列的总和。
我自己尝试这样做,我想出了以下代码:
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)
)
));
但IntelliJ指责错误,我该怎么办?
编辑:
IntelliJ错误
(java.util.stream.Collector<? super java.lang.String,A,R>)
in Stream cannot be applied
to
(java.util.stream.Collector<java.lang.String[],capture<?>,java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Double>>>)
答案 0 :(得分:0)
问题是getHeaders(),应该是getResults()。我想我需要一杯咖啡,谢谢你的回答