Jeder Kunde hat eine ID und viele Rechnungen mit Datumsangaben, die als Hashmap von Kunden nach ID gespeichert sind, sowie eine Hashmap von Rechnungen nach Datum:
HashMap<LocalDateTime, Invoice> allInvoices = allInvoicesAllClients.get(id);
if(allInvoices!=null){
allInvoices.put(date, invoice); //<---REPEATED CODE
}else{
allInvoices = new HashMap<>();
allInvoices.put(date, invoice); //<---REPEATED CODE
allInvoicesAllClients.put(id, allInvoices);
}
Java-Lösung scheint zu verwenden getOrDefault
:
HashMap<LocalDateTime, Invoice> allInvoices = allInvoicesAllClients.getOrDefault(
id,
new HashMap<LocalDateTime, Invoice> (){{ put(date, invoice); }}
);
Aber wenn get nicht null ist, möchte ich immer noch put (Datum, Rechnung) ausführen, und das Hinzufügen von Daten zu "allInvoicesAllClients" ist weiterhin erforderlich. Es scheint also nicht viel zu helfen.