ハッシュマップのハッシュマップを初期化するコードの繰り返しを回避するにはどうすればよいですか?
すべてのクライアントには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」にデータを追加する必要があります。だからそれはあまり役に立たないようです。