ลูกค้าทุกคนมีรหัสและใบแจ้งหนี้จำนวนมากที่มีวันที่เก็บไว้เป็น Hashmap ของลูกค้าโดย id ของ hashmap ของใบแจ้งหนี้ตามวันที่:
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); }}
);
แต่ถ้ารับไม่เป็นโมฆะฉันยังต้องการใส่ (วันที่ใบแจ้งหนี้) เพื่อดำเนินการและเพิ่มข้อมูลไปที่ "allInvoicesAllClients" ดังนั้นดูเหมือนจะไม่ช่วยอะไรมาก