私は2つのマップ最初のマップに要素がない場合、mergeMapsは機能しませんか?
private void mergeMaps(HashMap<String, FailureExample> current,
HashMap<String, FailureExample> other) {
current.forEach((k, v) -> other.merge(k, v,
(v1, v2) -> {
FailureExample answer = new FailureExample();
addFromListWithSizeLimit(v1, answer);
addFromListWithSizeLimit(v2, answer);
// answer.requests.addAll(v1.requests);
// answer.requests.addAll(v2.requests);
return answer;
}));
}
をマージしようとしたが、現在は0の要素を持っている場合、ラムダは実行されません。
マージできない場合は、マージで結合しないでください。
私がしたい:あなたは空のコレクションにforEach
を呼び出す
map1{} ; map2{<a,<a1>>} returns map3{<a,<a1>>}
map1{<a,<b1>>} ; map2{<a,<a1>>} returns map3{<a,<a1, b1>>}
あなたは第二のマップをマージしようとしていることを忘れて、あなたは空のリストに 'forEach'を呼び出す想像:何回だろうラムダは実行されますか? –
'other'マップを修正していることに加えて、' map2'と 'map3'は同じですが、コードはあなたが記述したものを正確に行います。なぜあなたは何か違うことを期待しているのか、何のために何を期待するのかははっきりしない両方のマップに別のキーがある場合、ラムダ式も実行されません。 – Holger