Ikki ob'ekt har doim solishtirishTo () usuli nolga teng bo'ladimi?
Ikki ob'ekt har doim solishtirishTo () usuli nolga teng bo'ladimi?

Video: Ikki ob'ekt har doim solishtirishTo () usuli nolga teng bo'ladimi?

Video: Ikki ob'ekt har doim solishtirishTo () usuli nolga teng bo'ladimi?
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Noyabr
Anonim

Bu hisoblanadi buni tavsiya qildi solishtiring faqat qaytadi 0, agar qo'ng'iroq qilinsa teng yoqilgan bir xil ob'ektlar bo'lardi qaytish rost: solishtiring (e2) == 0 bir xilga ega mantiqiy qiymat e1 sifatida. teng (e2) C sinfining har bir e1 va e2 uchun. Null ekanligini unutmang hisoblanadi har qanday sinfning namunasi emas va e.

Bundan tashqari, agar ikkita ob'ektning mazmuni bir xil bo'lsa ham, teng () uchun noto'g'ri qaytish mumkinmi?

4 ta javob. Java'da ommaviy boolean usuli teng ( Ob'ekt obj) dan meros qilib olingan Ob'ekt . Biroq, usulni amalga oshirishda belgilangan Ob'ekt sinf bu teng usul bo'ladi agar qaytar va faqat agar the ikkita ob'ekt solishtiriladi bir xil misol.

Keyinchalik savol tug'iladi, nima uchun compareTo () Java'da teng () usuliga mos kelishi kerak? Buning sababi, Map interfeysi nuqtai nazaridan belgilangan teng operatsiya, lekin xarita uning yordamida barcha asosiy taqqoslashlarni amalga oshiradi solishtiring (yoki solishtirish) usuli , shuning uchun ikkita kalit hisoblanadi teng bu orqali usuli saralangan xarita nuqtai nazaridan, teng.

Buni hisobga olsak, == teng () va solishtirishTo () usullari o'rtasidagi farq nima?

solishtiring : Ikki qatorni leksikografik jihatdan solishtiradi. teng : Ushbu qatorni belgilangan ob'ekt bilan taqqoslaydi. solishtiring ikkita satrni belgilari bo'yicha (bir xil indeksda) solishtiradi va mos ravishda butun sonni (ijobiy yoki salbiy) qaytaradi. teng() ikkita ob'ektning bir xil yoki yo'qligini tekshiradi va mantiqiy qiymatni qaytaradi.

solishtirish usulini bekor qila olamizmi?

solishtirish usulini bekor qilish Joriy tetiklash ob'ekti o'tkazilgandan kamroq bo'lsa, u manfiy butun sonni (odatda -1) qaytarishi kerak bitta dan katta bo'lsa, musbat butun son (odatda +1), teng bo'lsa 0. solishtirish usuli agar o'tkazilgan ob'ekt mos kelmaydigan turdagi yoki null bo'lsa, istisno qilish kerak.

Tavsiya: