Apa sebenarnya yang Anda rencanakan untuk dilakukan dengannya (apa yang ingin Anda lakukan membuat perbedaan dengan apa yang perlu Anda panggil).
hashCode
, seperti yang didefinisikan dalam JavaDocs, mengatakan:
Sebanyak praktis, metode hashCode yang didefinisikan oleh Objek kelas tidak mengembalikan bilangan bulat berbeda untuk objek berbeda. (Ini biasanya diimplementasikan dengan mengubah alamat internal objek menjadi integer, tetapi teknik implementasi ini tidak diperlukan oleh bahasa pemrograman Java ™.)
Jadi, jika Anda menggunakan hashCode()
untuk mencari tahu apakah itu adalah objek unik dalam memori, itu bukan cara yang baik untuk melakukannya.
System.identityHashCode
melakukan hal berikut:
Mengembalikan kode hash yang sama untuk objek yang diberikan seperti yang akan dikembalikan oleh metode default hashCode (), apakah kelas objek yang diberikan mengganti hashCode () atau tidak. Kode hash untuk referensi null adalah nol.
Yang, untuk apa yang Anda lakukan, terdengar seperti yang Anda inginkan ... tetapi apa yang ingin Anda lakukan mungkin tidak aman tergantung pada bagaimana pustaka diimplementasikan.