Ogni cliente ha un ID e molte fatture, con date, memorizzate come hashmap dei clienti per ID, di una hashmap delle fatture per data:
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);
}
La soluzione Java sembra essere quella di utilizzare getOrDefault
:
HashMap<LocalDateTime, Invoice> allInvoices = allInvoicesAllClients.getOrDefault(
id,
new HashMap<LocalDateTime, Invoice> (){{ put(date, invoice); }}
);
Ma se get non è nullo, voglio ancora che put (data, fattura) venga eseguito e che sia ancora necessario aggiungere dati a "allInvoicesAllClients". Quindi non sembra aiutare molto.