প্রত্যেক ক্লায়েন্টের একটি আইডি থাকে এবং অনেকগুলি চালান, তারিখ সহ, তারিখ অনুসারে চালকদের হ্যাশম্যাপের আইডি দ্বারা ক্লায়েন্টের হাশম্যাপ হিসাবে সঞ্চিত থাকে:
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);
}
জাভা সমাধানটি ব্যবহার করার মতো বলে মনে হচ্ছে getOrDefault
:
HashMap<LocalDateTime, Invoice> allInvoices = allInvoicesAllClients.getOrDefault(
id,
new HashMap<LocalDateTime, Invoice> (){{ put(date, invoice); }}
);
তবে যদি প্রাপ্তিটি শূন্য না হয় তবে আমি এখনও (ডেট, চালান) কার্যকর করতে চাই এবং "allInvoicesAllClients" তে ডেটা যুক্ত করা এখনও দরকার। সুতরাং এটি অনেক সাহায্য করবে বলে মনে হয় না।