Apakah dua objek akan selalu sama ketika metode compareTo () mereka mengembalikan nol?
Apakah dua objek akan selalu sama ketika metode compareTo () mereka mengembalikan nol?

Video: Apakah dua objek akan selalu sama ketika metode compareTo () mereka mengembalikan nol?

Video: Apakah dua objek akan selalu sama ketika metode compareTo () mereka mengembalikan nol?
Video: Ilmu Hukum Sertifikat Tanah Yang Di Miliki Lebih Dari 1 orang #hotmanparis #hotman911 #ilmuhukum 2024, November
Anonim

Dia adalah merekomendasikan itu dibandingkan dengan hanya kembali 0, jika panggilan ke sama dengan pada objek yang sama akan kembali benar: dibandingkan dengan (e2) == 0 memiliki hal yang sama nilai boolean sebagai e1. sama dengan (e2) untuk setiap e1 dan e2 dari kelas C. Perhatikan bahwa null adalah bukan turunan dari kelas mana pun, dan e.

Selanjutnya, apakah mungkin equals () untuk mengembalikan false meskipun konten dari dua objek sama?

4 Jawaban. Di java metode boolean publik sama dengan ( Obyek obj) diwarisi dari Obyek . Namun, penerapan metode seperti yang didefinisikan dalam Obyek kelas adalah bahwa sama dengan metode akan kembali jika dan hanya jika NS dua objek dibandingkan adalah sama contoh.

Selanjutnya, pertanyaannya adalah, mengapa metode compareTo() harus konsisten dengan metode equals() di Java? Hal ini terjadi karena antarmuka Peta didefinisikan dalam istilah sama dengan operasi, tetapi peta melakukan semua perbandingan utama menggunakan dibandingkan dengan (atau membandingkan) metode , jadi dua kunci yang dianggap setara dengan ini metode adalah, dari sudut pandang peta yang diurutkan, setara.

Dengan mengingat hal ini, apa perbedaan antara metode == equals () dan compareTo ()?

dibandingkan dengan : Membandingkan dua string secara leksikografis. sama dengan : Membandingkan string ini dengan objek yang ditentukan. dibandingkan dengan membandingkan dua string dengan karakternya (pada indeks yang sama) dan mengembalikan bilangan bulat (positif atau negatif) yang sesuai. sama () memeriksa apakah dua objek sama atau tidak dan mengembalikan boolean.

Bisakah kita mengganti metode compareTo?

Ganti metode compareTo Itu harus mengembalikan bilangan bulat negatif (biasanya -1), jika objek pemicu saat ini kurang dari yang dilewatkan satu , dan bilangan bulat positif (biasanya +1) jika lebih besar dari, dan 0 jika sama. bandingkan dengan metode harus melempar pengecualian jika objek yang diteruskan memiliki tipe yang tidak kompatibel atau nol.

Direkomendasikan: