У кожного клієнта є ідентифікатор, і багато рахунків-фактур із датами, що зберігаються як Hashmap клієнтів за id, хеш-мапи рахунків-фактур за датою:
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 використовує getOrDefault
:
HashMap<LocalDateTime, Invoice> allInvoices = allInvoicesAllClients.getOrDefault(
id,
new HashMap<LocalDateTime, Invoice> (){{ put(date, invoice); }}
);
Але якщо get не є нульовим, я все одно хочу виконати put (дата, рахунок-фактура), а також додавання даних до "allInvoicesAllClients" все ще потрібно. Тож, здається, це не дуже допомагає.