すべてのクライアントにはIDと多くの請求書があり、日付ごとに請求書のハッシュマップの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がnullでない場合でも、put(date、invoice)を実行したいので、「allInvoicesAllClients」にデータを追加する必要があります。だからそれはあまり役に立たないようです。