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