próbuję połączyć dwie mapymergeMaps nie działa, gdy pierwsza mapa nie zawiera elementów?
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;
}));
}
ale gdy prąd ma 0 elementów, lambda nie jest wykonywany.
Czy łączenie nie powinno być połączone w przypadku, gdy nie jest możliwe połączenie?
chcę:
map1{} ; map2{<a,<a1>>} returns map3{<a,<a1>>}
map1{<a,<b1>>} ; map2{<a,<a1>>} returns map3{<a,<a1, b1>>}
Zapomnij, że jesteś stara się łączyć mapy na sekundę, i wyobraź sobie nazywać 'forEach' na pustej listy: ile razy będzie lambda zostać stracony? –
Oprócz tego, że modyfikujesz mapę "innego", innymi słowy, 'map2' i' map3' są identyczne, kod dokładnie robi to, co opisujesz. Nie jest jasne, dlaczego oczekujesz czegoś innego i po co. Gdy obie mapy mają rozłączne klucze, wyrażenie lambda również nie zostanie wykonane. – Holger