String
জাভা এর সমতার জন্য পরীক্ষা করার সময় আমি সর্বদা ব্যবহার করি equals()
কারণ এটি আমার কাছে এটি সবচেয়ে প্রাকৃতিক পদ্ধতি বলে মনে হয়। সর্বোপরি, এর নামটি ইতিমধ্যে জানিয়েছে যে এটি করার উদ্দেশ্যে। যাইহোক, আমার এক সহকর্মী আমাকে সম্প্রতি compareTo() == 0
পরিবর্তে ব্যবহার করতে শেখানো হয়েছে বলেছিলেন equals()
। এটি অপ্রাকৃত অনুভব করে (যেমন compareTo()
অর্ডার সরবরাহ করার জন্য এবং সাম্যের জন্য তুলনা না করার জন্য) এবং কিছুটা বিপজ্জনক (কারণ compareTo() == 0
এটি সমস্ত ক্ষেত্রে সাম্যকে বোঝায় না যদিও আমি জানি যে এটি String
আমার পক্ষে হয়)।
তিনি কেন তিনি ব্যবহার করতে শেখানো হয় জানেন না compareTo()
পরিবর্তে equals()
জন্য String
এর, এবং আমি তার সাথে সাথে কেন খুঁজে পাইনি। এটি কি সত্যিই ব্যক্তিগত স্বাদের বিষয়, বা কোনও পদ্ধতির কোনও বাস্তব কারণ আছে?
compareTo() == 0
অগত্যা সব ক্ষেত্রেই সাম্য বোঝানো হয় না"। এটা একদম সঠিক! জাভা এপিআই নির্দিষ্টকরণে "সমান সাথে সামঞ্জস্যপূর্ণ" শব্দটির অর্থ হ'ল উদাহরণস্বরূপ তুলনামূলক শ্রেণীর স্পেসিফিকেশন। উদাহরণস্বরূপ, স্ট্রিংয়ের তুলনা পদ্ধতি সমানগুলির সাথে সামঞ্জস্যপূর্ণ, তবে বিগডিসিমালের তুলনা পদ্ধতি সমানগুলির সাথে সামঞ্জস্যপূর্ণ নয় ।
.equalsIgnoreCase()
এটি যথাযথ হলে দ্রুততম তুলনা হয়, অন্যথায়.equals()
আপনি যা চান তা এটি।