Perbedaan Antara Equals Dan HashCode Di Java

Daftar Isi:

Perbedaan Antara Equals Dan HashCode Di Java
Perbedaan Antara Equals Dan HashCode Di Java

Video: Perbedaan Antara Equals Dan HashCode Di Java

Video: Perbedaan Antara Equals Dan HashCode Di Java
Video: Java. Методы equals и hashCode. 2024, Mungkin
Anonim

Perbedaan Kunci - sama dengan kode hash di Java

Persamaan ini mirip dengan operator ==, yaitu untuk menguji identitas objek daripada persamaan objek. HashCode adalah metode di mana kelas secara implisit atau eksplisit memecah data yang disimpan dalam sebuah instance kelas menjadi satu nilai hash, yang merupakan bilangan bulat bertanda 32 bit. Perbedaan utama antara equals dan hashCode di Java adalah bahwa persamaan digunakan untuk membandingkan dua objek sementara hashCode digunakan dalam hashing untuk memutuskan kelompok objek mana yang harus dikategorikan.

ISI

1. Gambaran Umum dan Perbedaan Kunci

2. Apa yang sama di Java

3. Apa itu kode hash di Java

4. Perbandingan Berdampingan - sama dengan kode hash di Jawa dalam Bentuk Tabular

5. Ringkasan

Apa yang sama di Jawa?

Metode sama dengan digunakan untuk membandingkan dua objek. Metode default sama dengan didefinisikan di kelas objek. Implementasi itu mirip dengan operator ==. Kedua referensi objek tersebut sama hanya jika keduanya menunjuk ke objek yang sama. Dimungkinkan untuk mengganti metode sama dengan.

Perbedaan Antara equals dan hashCode di Java
Perbedaan Antara equals dan hashCode di Java

Gambar 01: Program Java dengan sederajat

Pernyataan System.out.println (s1.equals (s2)) akan memberikan jawaban salah karena s1 dan s2 mengacu pada dua objek yang berbeda. Itu mirip dengan pernyataan, System.out.println (s1 == s2);

Pernyataan System.out.println (s1.equals (s3)) akan memberikan jawaban benar karena s1 dan s3 merujuk ke objek yang sama. Itu mirip dengan pernyataan, System.out.println (s1 == s3);

Tidak ada metode yang sama di kelas Siswa. Oleh karena itu, persamaan di kelas Object disebut. True ditampilkan hanya jika referensi objek menunjuk ke objek yang sama.

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

Gambar 02: Program Java dengan Overridden sama

Menurut program di atas, metode sama dengan diganti. Sebuah objek diteruskan ke metode, dan itu diketikkan ke Siswa. Kemudian, nilai id dicentang. Jika nilai id serupa, itu akan mengembalikan true. Jika tidak, itu akan mengembalikan salah. Id dari s1 dan s2 serupa. Jadi, itu akan dicetak dengan benar. ID dari s1 dan s3 juga serupa, jadi ini akan dicetak sebagai true.

Apa itu hashCode di Java?

HashCode digunakan dalam hashing untuk memutuskan ke grup mana objek harus dikategorikan. Sekelompok objek dapat berbagi kode hash yang sama. Fungsi hashing yang benar dapat mendistribusikan objek secara merata ke dalam grup yang berbeda.

Kode hash yang benar dapat memiliki properti sebagai berikut. Asumsikan ada dua objek sebagai obj1 dan obj2. Jika obj1.equals (obj2) benar, maka obj1.hashCode () sama dengan obj2.hashCode (). Jika obj1.equals (obj2) salah, tidak perlu bahwa obj1.hashCode () tidak sama dengan obj2.hashCode (). Kedua objek yang tidak sama mungkin juga memiliki kode hash yang sama.

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

Gambar 03: Kelas siswa dengan persamaan dan kode hash

Perbedaan Utama Antara sama dengan dan hashCode di Java
Perbedaan Utama Antara sama dengan dan hashCode di Java

Gambar 04: Program Utama

Kelas Student berisi metode sama dengan dan metode hashCode. Metode sama di kelas Siswa akan menerima sebuah objek. Jika objeknya nol, itu akan mengembalikan salah. Jika kelas objek tidak sama, itu akan mengembalikan nilai salah. Nilai id diperiksa di kedua objek. Jika mereka serupa, itu akan mengembalikan true. Jika tidak, itu akan mengembalikan false.

Dalam program utama, objek s1 dan s2 dibuat. Saat memanggil s1.equals (s2) akan memberikan nilai true karena metode sama dengan diganti dan memeriksa nilai id dari dua objek. Meskipun mengacu pada dua objek, namun jawabannya benar karena nilai id s1 dan s2 sama. Karena s1.equals (s2) benar, kode hash dari s1 dan s2 harus sama. Mencetak kode hash s1 dan s2 memberikan nilai yang sama. Metode hashCode dapat digunakan dengan Koleksi seperti HashMap.

Apa Perbedaan Antara equals dan hashCode di Java?

Artikel Diff Tengah sebelum Tabel

sama dengan vs hashCode di Java

equals adalah metode di Java yang bertindak mirip dengan == operator, yaitu untuk menguji identitas objek daripada persamaan objek. hashCode adalah metode yang digunakan kelas secara implisit atau eksplisit memecah data yang disimpan dalam instance kelas menjadi satu nilai hash.
Pemakaian
Metode sama digunakan untuk membandingkan dua objek. Metode ini digunakan dalam hashing untuk memutuskan di grup mana objek harus ditempatkan.

Ringkasan - sama dengan vs hashCode di Java

Perbedaan equals dan hashCode di Java adalah persamaan digunakan untuk membandingkan dua objek sedangkan hashCode digunakan dalam hashing untuk memutuskan grup mana yang harus dikategorikan objek.

Direkomendasikan: