আমি বিশ্বাস করি যে এটি অন্ততপক্ষে আপনাকে একত্রিত করার containsKey
এবং get
একক কল করার অনুমতি দেবে । মানচিত্রটি যদি নালগুলি ধরে রাখতে পারে তবে তা বলার উপায় নেইget
মূল্য নেই যে কোনও নাল ফিরিয়ে দিচ্ছে কারণ সেই মানটির কোনও চাবি ছিল না, বা কেবল মানটি শূন্য ছিল।
কেন যে সমস্যা? কারণ এটি করার কোনও নিরাপদ উপায় নেই। নিম্নলিখিত কোড নিন:
if (m.containsKey(k)) {
return m.get(k);
} else {
throw new KeyNotPresentException();
}
যেহেতু m
সমবর্তী মানচিত্র, তাই কে containsKey
এবং get
কলগুলির মধ্যে মুছে ফেলা হতে পারে , যার ফলে এই স্নিপেটটি কাঙ্ক্ষিতের চেয়ে টেবিলের মধ্যে কখনই ছিল না এমন শূন্যতা ফিরিয়ে আনতে পারে KeyNotPresentException
।
সাধারণত আপনি এটি সিঙ্ক্রোনাইজ করে সমাধান করে দিতেন তবে একসাথে মানচিত্রের সাহায্যে অবশ্যই কাজ করবে না। সুতরাং এর জন্য স্বাক্ষরটি get
বদলাতে হয়েছিল, এবং পিছনের দিকে সামঞ্জস্যপূর্ণ উপায়ে এটি করার একমাত্র উপায় ছিল ব্যবহারকারী প্রথমে নাল মান সন্নিবেশ করানো এবং "কী খুঁজে পাওয়া যায়নি" এর স্থানধারক হিসাবে এটি ব্যবহার চালিয়ে যাওয়া।