私はマップを含む地図を持っています。 マップ> マップのすべてのエントリについて、特定のキーの合計を計算します。ラムダで使用される変数は、合計を計算する際に最終的または最終的な最終値である必要がありますか?
例えば、私のマップは、このようなものです:
Key1 Key2 Value
A Z 10.10
B Z 40.10
C Y 20.10
私はこのケースでは、私はキー1 -Cとして50.20を取得したいので、基本的にはBに等しいすべてのKEY2の合計を計算しますkey2がありませんZ
私はJava 8を使用してこれを実行しようとしています。どのように合計を集めるべきか分かりません。
double sum = 0;
myMap.forEach((key1, key2) -> {
sum += key2.get("Z");
});
しかし、ラムダの値は最終的な値でなければならないというエラーが表示されます。
'map.values()ストリーム()mapToDouble(X - > x.get(「Z。 "))。sum()' – Misha
あなたが得るエラーが予想されます。ラムダ内から 'sum'にアクセスするには、最終的なものでなければなりません。ラムダ内で最終的なものではないものは参照できません。 – Tavo