Perbedaan Antara Setara dan Kode hash di Java

Daftar Isi:

Perbedaan Antara Setara dan Kode hash di Java
Perbedaan Antara Setara dan Kode hash di Java

Video: Perbedaan Antara Setara dan Kode hash di Java

Video: Perbedaan Antara Setara dan Kode hash di Java
Video: Belajar Hashmap Dan Fungsi - Fungsi nya | tutorial java 2024, Juli
Anonim

Perbedaan Kunci – sama dengan kode hash di Java

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

Apa yang sama dengan di Jawa?

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

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

Gambar 01: Program Java dengan persamaan

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 mengacu pada objek yang sama. Itu mirip dengan pernyataan, System.out.println(s1==s3);

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

Perbedaan Antara equals dan hashCode di Java_Gambar 02
Perbedaan Antara equals dan hashCode di Java_Gambar 02

Gambar 02: Program Java dengan Overriden sama dengan

Menurut program di atas, metode equals ditimpa. Sebuah objek dilewatkan ke metode, dan itu adalah tipe yang dicor ke Siswa. Kemudian, nilai id diperiksa. Jika nilai id serupa, itu akan mengembalikan true. Jika tidak, itu akan mengembalikan false. Id s1 dan s2 serupa. Jadi, itu akan mencetak benar. Id s1 dan s3 juga mirip, jadi akan tercetak benar.

Apa itu HashCode di Java?

Kode hash digunakan dalam hashing untuk memutuskan ke grup mana suatu 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 bahwa ada dua objek sebagai obj1 dan obj2. Jika obj1.equals(obj2) benar, maka obj1.hashCode() sama dengan obj2.hashCode(). Jika obj1.equals(obj2) salah, obj1.hashCode() tidak harus sama dengan obj2.hashCode(). Dua objek yang tidak sama mungkin juga memiliki kode hash yang sama.

Perbedaan Antara equals dan hashCode di Java_Gambar 03
Perbedaan Antara equals dan hashCode di Java_Gambar 03

Gambar 03: Kelas siswa dengan persamaan dan Kode hash

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

Gambar 04: Program Utama

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

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

Apa Perbedaan Antara equals dan hashCode di Java?

equals vs hashCode di Java

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

Ringkasan – sama dengan kode hash di Java

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

Direkomendasikan: