Perbezaan antara sama dan hashcode di java

Perbezaan antara sama dan hashcode di java

Perbezaan utama - sama dengan vs hashcode in Java
 

Sama adalah serupa dengan operator ==, yang menguji identiti objek dan bukannya kesamaan objek. HashCode adalah kaedah di mana kelas secara tersirat atau secara eksplisit memecahkan data yang disimpan dalam contoh kelas ke dalam nilai hash tunggal, iaitu integer yang ditandatangani 32 bit. The Perbezaan utama antara sama dan hashcode di Java ialah sama digunakan untuk membandingkan dua objek manakala hashcode digunakan dalam hashing untuk menentukan kumpulan mana objek harus dikategorikan.

Kandungan

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apa yang sama dengan Java
3. Apa itu HashCode di Java
4. Perbandingan sampingan - sama dengan vs hashcode dalam java dalam bentuk jadual
5. Ringkasan

Apa yang sama dengan Java?

Kaedah sama digunakan untuk membandingkan dua objek. Kaedah sama lalai ditakrifkan dalam kelas objek. Pelaksanaan itu serupa dengan operator ==. Kedua -dua rujukan objek hanya sama jika mereka menunjuk ke objek yang sama. Adalah mungkin untuk mengatasi kaedah yang sama.

Rajah 01: Program Java dengan sama

Sistem penyataan.keluar.println (s1.sama dengan (s2)) akan memberikan jawapan palsu kerana s1 dan s2 merujuk kepada dua objek yang berbeza. Ia serupa dengan pernyataan, sistem.keluar.println (s1 == s2);

Sistem penyataan.keluar.println (s1.sama dengan (s3)) akan memberikan jawapan yang benar kerana s1 dan s3 merujuk kepada objek yang sama. Ia serupa dengan pernyataan, sistem.keluar.println (s1 == s3);

Tidak ada kaedah yang sama dalam kelas pelajar. Oleh itu, sama dengan kelas objek dipanggil. Benar hanya dipaparkan jika rujukan objek menunjuk ke objek yang sama.

Rajah 02: Program Java dengan Overridden sama dengan

Menurut program di atas, kaedah yang sama diatasi. Objek diserahkan kepada kaedah, dan ia adalah jenis yang dilemparkan kepada pelajar. Kemudian, nilai ID diperiksa. Sekiranya nilai ID serupa, ia akan kembali. Sekiranya tidak, ia akan kembali palsu. ID S1 dan S2 adalah serupa. Jadi, ia akan mencetak benar. ID S1 dan S3 juga serupa, jadi ia akan mencetak benar.

Apa itu HashCode di Java?

HashCode digunakan dalam hashing untuk memutuskan kumpulan mana objek harus dikategorikan. Sekumpulan objek boleh berkongsi hashcode yang sama. Fungsi hashing yang betul dapat mengedarkan objek secara merata ke dalam kumpulan yang berbeza.

Hashcode yang betul boleh mempunyai sifat seperti berikut. Menganggap bahawa terdapat dua objek sebagai OBJ1 dan OBJ2. Jika obj1.sama dengan (obj2) adalah benar, maka obj1.HashCode () sama dengan OBJ2.HashCode (). Jika obj1.sama (obj2) adalah palsu, tidak perlu bahawa obj1.HashCode () tidak sama dengan OBJ2.HashCode (). Dua objek yang tidak sama juga mungkin mempunyai hashcode yang sama.

Rajah 03: Kelas Pelajar dengan Sama dan HashCode

Rajah 04: Program Utama

Kelas pelajar mengandungi kaedah yang sama dan hashcode. Kaedah yang sama dalam kelas pelajar akan menerima objek. Sekiranya objek itu batal, ia akan kembali palsu. Sekiranya kelas objek tidak sama, ia akan kembali palsu. Nilai ID diperiksa di kedua -dua objek. Sekiranya mereka serupa, ia akan kembali benar. Jika tidak, ia akan kembali palsu.

Dalam program utama, Objek S1 dan S2 dibuat. Semasa memanggil S1.sama dengan (s2) akan benar kerana kaedah yang sama ditindas dan ia memeriksa nilai id kedua -dua objek. Walaupun mereka merujuk kepada dua objek, jawapannya adalah benar kerana nilai ID S1 dan S2 adalah sama. Sebagai S1.sama dengan (s2) adalah benar, hashcode s1 dan s2 harus sama. Mencetak kod hash S1 dan S2 memberikan nilai yang sama. Kaedah hashcode boleh digunakan dengan koleksi seperti hashmap.

Apakah perbezaan antara sama dan hashcode di java?

sama dengan vs hashcode di java

sama adalah kaedah dalam java yang bertindak serupa dengan operator ==, yang menguji identiti objek dan bukannya kesamaan objek. HashCode adalah kaedah yang mana kelas secara tersirat atau secara eksplisit memecahkan data yang disimpan dalam contoh kelas menjadi satu nilai hash tunggal.
 Penggunaan
Kaedah sama digunakan untuk membandingkan dua objek. Kaedah ini digunakan dalam hashing untuk menentukan kumpulan mana objek harus dimasukkan ke dalam.

Ringkasan -sama vs hashcode dalam Java

Perbezaan dalam sama dan hashcode di java adalah bahawa sama digunakan untuk membandingkan dua objek manakala hashcode digunakan dalam hashing untuk menentukan kumpulan mana objek harus dikategorikan ke dalam.

Rujukan:

1."Java HashCode ()."Wikipedia, Yayasan Wikimedia, 17 Feb. 2018. Terdapat di sini 
2.Harold, Elliotte Rusty. "Kaedah sama ()."Kaedah sama (), 2 Nov. 2001. Terdapat di sini