Setiap klien memiliki id, dan banyak faktur, dengan tanggal, disimpan sebagai Hashmap klien dengan id, dari hashmap faktur berdasarkan tanggal:
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);
}
Solusi Java tampaknya menggunakan getOrDefault:
HashMap<LocalDateTime, Invoice> allInvoices = allInvoicesAllClients.getOrDefault(
id,
new HashMap<LocalDateTime, Invoice> (){{ put(date, invoice); }}
);
Tetapi jika get bukan null, saya masih ingin mengeksekusi (tanggal, faktur), dan juga menambahkan data ke "allInvoicesAllClients" masih diperlukan. Jadi sepertinya tidak banyak membantu.