Sama sama dengan operator ==, iaitu untuk menguji identitas objek daripada persamaan objek. HashCode adalah kaedah yang mana kelas secara tersirat atau secara eksplisit memecah data yang tersimpan dalam suatu contoh kelas ke dalam satu nilai hash, yang merupakan 32 bit integer ditandatangani. The perbezaan utama antara sama dan hashCode dalam Java ialah yang sama digunakan untuk membandingkan dua objek sementara hashCode digunakan dalam hashing untuk menentukan kumpulan mana objek harus dikategorikan ke dalam.
1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apakah yang sama di Jawa
3. Apakah hashCode di Jawa
4. Side by Side Comparison - sama dengan hashCode di Jawa dalam Borang Tabular
5. Ringkasan
Kaedah yang sama digunakan untuk membandingkan dua objek. Kaedah yang setara adalah ditentukan dalam kelas objek. Pelaksanaan itu serupa dengan operator ==. Kedua-dua rujukan objek adalah sama sahaja jika mereka menunjuk kepada objek yang sama. Adalah mungkin untuk mengatasi kaedah sama.
Rajah 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 sama dengan pernyataan, System.out.println (s1 == s2);
Pernyataan System.out.println (s1.equals (s3)) akan memberi jawapan yang benar kerana s1 dan s3 merujuk kepada objek yang sama. Ia sama dengan pernyataan, System.out.println (s1 == s3);
Tiada kaedah sama dalam kelas Pelajar. Oleh itu, sama dengan Kelas objek dipanggil. Benar dipaparkan hanya jika rujukan objek menunjuk ke objek yang sama.
Rajah 02: Program Java dengan Sama Terputus
Menurut program di atas, kaedah yang sama digantikan. Objek diluluskan kepada kaedah, dan jenisnya dihantar ke Pelajar. Kemudian, nilai-nilai id diperiksa. Jika nilai-nilai id adalah sama, ia akan kembali benar. Jika tidak, ia akan kembali palsu. The id s1 dan s2 adalah serupa. Jadi, ia akan mencetak benar. The id s1 dan s3 juga sama, jadi ia akan mencetak benar.
HashCode digunakan dalam hashing untuk menentukan kumpulan mana objek harus dikategorikan. Sekumpulan objek boleh berkongsi hashCode yang sama. Fungsi hashing yang betul boleh menyebarkan objek secara merata ke dalam kumpulan yang berbeza.
HashCode yang betul boleh mempunyai sifat seperti berikut. Anggapkan bahawa terdapat dua objek sebagai obj1 dan obj2. Jika obj1.equals (obj2) adalah benar, maka obj1.hashCode () adalah sama dengan obj2.hashCode (). Jika obj1.equals (obj2) adalah palsu, tidak perlu obj1.hashCode () tidak sama dengan obj2.hashCode (). Kedua-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 sama dan hashCode. Kaedah yang sama dengan kelas Pelajar akan menerima objek. Jika objek itu batal, ia akan kembali palsu. Jika kelas objek tidak sama, ia akan kembali palsu. Nilai-nilai id disemak dalam kedua-dua objek. Sekiranya ia serupa, ia akan kembali benar. Sekiranya ia akan kembali palsu.
Dalam program utama, objek s1 dan s2 dibuat. Apabila memanggil s1.equals (s2) akan memberi kenyataan kerana kaedah yang sama digantikan dan ia menyemak nilai-nilai id kedua-dua objek. Walaupun mereka merujuk kepada dua objek, jawapannya adalah benar kerana nilai-nilai id s1 dan s2 adalah sama. Oleh kerana s1.equals (s2) adalah benar, hashCode s1 dan s2 sepatutnya sama. Mencetak hashCode s1 dan s2 memberikan nilai yang sama. Kaedah hashCode boleh digunakan dengan Koleksi seperti HashMap.
sama dengan hashCode di Jawa | |
Sama adalah satu kaedah di Jawa yang bertindak sama dengan operator ==, iaitu untuk menguji identitas objek daripada persamaan objek. | hashCode adalah satu kaedah yang mana kelas secara tersirat atau secara eksplisit memecah data yang tersimpan dalam suatu contoh kelas menjadi satu nilai hash. |
Penggunaan | |
Kaedah sama digunakan untuk membandingkan dua objek. | Kaedah ini digunakan dalam hashing untuk menentukan kumpulan mana objek harus diletakkan. |
Perbezaan sama dengan dan hashCode di Jawa adalah sama dengan yang digunakan untuk membandingkan dua objek manakala hashCode digunakan dalam hashing untuk menentukan kumpulan mana objek harus dikategorikan ke.
1. "Java HashCode ()." Wikipedia, Yayasan Wikimedia, 17 Feb. 2018. Boleh didapati di sini
2.Harold, Elliotte Rusty. "Kaedah Equals ()." The Equals () Method, 2 November 2001. Available here