모든 고객은 날짜별로 인보이스의 해시 맵으로 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 (날짜, 송장)을 실행하고 "allInvoicesAllClients"에 데이터를 추가해야합니다. 그래서별로 도움이되지 않는 것 같습니다.