new ArrayList<>().addAll(
Arrays.asList(
new String[]{"foo","bar", "5"},
new String[]{"foo", "bar2", "8"},
new String[]{"foo", "bar", "5"}
)
);
のように見える文字列配列のコレクションを持っている、と私はグループにその後、この
[
{
key:"foo",
value: [
{
key: "bar",
value: 10
},
{
key: "bar2",
value: 8
}
]
}
]
と同様の結果を与えるMap<String, Map<String, Double>>
を生産、このリストが欲しいです内部値は配列の3番目の列の合計になります。自分でこれを実行しようとすると
は、私は次のコードを思い付いてきました:
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のは、私が何を行うことができ、エラーを非難しますか?
EDIT: 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>>>)
何がエラーですか? –
Believe IntelliJ。あなたが得るエラーメッセージを投稿してください。おそらくそれはより明確になります。あなたの例は私のために追いつくのは難しいです。それはなぜあなたが問題を抱えているのかを説明します。 – duffymo
また、なぜSqlResult.HeadersにparallelStreamがあるのですか?実際にこのような膨大な量のヘッダーが存在し、2倍の合計を計算するために並列処理ハーネス全体を初期化することは妥当ですか? –