Chaque client a un identifiant, et de nombreuses factures, avec des dates, stockées sous forme de Hashmap de clients par identifiant, d'un hashmap de factures par date:
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 solution Java semble être d'utiliser getOrDefault
:
HashMap<LocalDateTime, Invoice> allInvoices = allInvoicesAllClients.getOrDefault(
id,
new HashMap<LocalDateTime, Invoice> (){{ put(date, invoice); }}
);
Mais si get n'est pas nul, je veux toujours que put (date, facture) s'exécute, et l'ajout de données à "allInvoicesAllClients" est toujours nécessaire. Cela ne semble donc pas beaucoup aider.