Perbezaan Antara Sama Dan HashCode Di Java

Isi kandungan:

Perbezaan Antara Sama Dan HashCode Di Java
Perbezaan Antara Sama Dan HashCode Di Java

Video: Perbezaan Antara Sama Dan HashCode Di Java

Video: Perbezaan Antara Sama Dan HashCode Di Java
Video: Java. Методы equals и hashCode. 2024, November
Anonim

Perbezaan Utama - sama dengan hashCode di Java

Sama dengan operator ==, iaitu menguji identiti objek dan bukannya persamaan objek. The hashCode adalah kaedah di mana kelas secara implisit atau eksplisit menguraikan data yang disimpan dalam contoh kelas menjadi nilai hash tunggal, yang merupakan bilangan bulat 32 bit yang ditandatangani. Perbezaan utama antara sama dan hashCode di Java adalah bahawa sama digunakan untuk membandingkan dua objek sementara hashCode digunakan dalam hashing untuk memutuskan kumpulan objek yang harus dikategorikan ke dalam.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama

2. Apa yang sama dengan Java

3. Apa itu hashCode di Java

4. Perbandingan Berdampingan - sama dengan hashCode di Java dalam Borang Jadual

5. Ringkasan

Apa yang sama di Jawa?

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

Perbezaan Antara sama dan hashCode di Java
Perbezaan Antara sama dan hashCode di Java

Gambar 01: Program Java dengan sama

Pernyataan System.out.println (s1.equals (s2)) akan memberikan jawapan palsu kerana s1 dan s2 merujuk kepada dua objek yang berbeza. Ia serupa dengan pernyataan, System.out.println (s1 == s2);

Pernyataan System.out.println (s1.equals (s3)) akan memberikan jawapannya benar kerana s1 dan s3 merujuk pada objek yang sama. Ia serupa dengan pernyataan, System.out.println (s1 == s3);

Tidak ada kaedah yang sama di kelas Pelajar. Oleh itu, yang sama dengan kelas Objek dipanggil. Benar ditunjukkan hanya jika rujukan objek menunjuk ke objek yang sama.

Perbezaan Antara sama dan hashCode di Java Figure 02
Perbezaan Antara sama dan hashCode di Java Figure 02

Gambar 02: Program Java dengan Overridden sama

Menurut program di atas, kaedah sama diganti. Objek diserahkan kepada kaedah, dan jenisnya dilemparkan kepada Pelajar. Kemudian, nilai id diperiksa. Sekiranya nilai id serupa, ia akan menjadi benar. Sekiranya tidak, ia akan kembali palsu. Id s1 dan s2 serupa. Jadi, ia akan dicetak benar. Id s1 dan s3 juga serupa, jadi ia akan benar.

Apakah hashCode di Java?

The hashCode digunakan dalam hashing untuk memutuskan kumpulan mana objek yang harus dikategorikan. Sekumpulan objek boleh berkongsi hashCode yang sama. Fungsi hash yang betul dapat mengagihkan objek ke dalam kumpulan yang berbeza.

Kod hash yang betul boleh mempunyai sifat seperti berikut. Andaikan bahawa terdapat dua objek sebagai obj1 dan obj2. Sekiranya obj1.equals (obj2) adalah benar, maka obj1.hashCode () sama dengan obj2.hashCode (). Sekiranya obj1.equals (obj2) salah, tidak perlu obj1.hashCode () tidak sama dengan obj2.hashCode (). Kedua-dua objek yang tidak sama juga mungkin mempunyai kod hash yang sama.

Perbezaan Antara sama dan hashCode di Java Figure 03
Perbezaan Antara sama dan hashCode di Java Figure 03

Gambar 03: Kelas pelajar dengan sama dan kod hash

Perbezaan Utama Antara sama dan hashCode di Java
Perbezaan Utama Antara sama dan hashCode di Java

Gambar 04: Program Utama

Kelas Pelajar mengandungi kaedah sama dan hashCode. Kaedah sama di kelas Pelajar akan menerima objek. Sekiranya objek itu kosong, ia akan kembali palsu. Sekiranya kelas objek tidak sama, ia akan berubah menjadi salah. Nilai id diperiksa di kedua-dua objek. Sekiranya ia serupa, ia akan menjadi kenyataan. Jika tidak, ia akan kembali palsu.

Dalam program utama, objek s1 dan s2 dibuat. Apabila memanggil s1.equals (s2) akan memberi nilai benar kerana kaedah sama diganti dan ia memeriksa nilai id dari dua objek tersebut. Walaupun mereka merujuk kepada dua objek, jawapannya adalah benar kerana nilai id s1 dan s2 adalah sama. Oleh kerana s1.sequals (s2) adalah benar, hashCode s1 dan s2 harus sama. Mencetak hashCode s1 dan s2 memberikan nilai yang sama. Kaedah hashCode boleh digunakan dengan Koleksi seperti HashMap.

Apakah Perbezaan Antara Sama dan hashCode di Java?

Artikel Diff Tengah sebelum Jadual

sama dengan hashCode di Java

equals adalah kaedah di Java yang bertindak serupa dengan operator ==, iaitu menguji identiti objek dan bukannya persamaan objek. hashCode adalah kaedah di mana kelas secara implisit atau eksplisit menguraikan data yang disimpan dalam contoh kelas menjadi nilai hash tunggal.
Penggunaan
Kaedah sama digunakan untuk membandingkan dua objek. Kaedah ini digunakan dalam hashing untuk menentukan kumpulan objek yang harus diletakkan.

Ringkasan - sama dengan hashCode di Java

Perbezaan sama dengan dan hashCode di Java adalah bahawa sama digunakan untuk membandingkan dua objek sementara hashCode digunakan dalam hashing untuk memutuskan kumpulan objek yang harus dikategorikan ke dalam.

Disyorkan: