Rumah >Java >javaTutorial >Bagaimana untuk Melaksanakan Kaedah hashCode() Teguh untuk Koleksi?
Menentukan pelaksanaan optimum untuk kaedah hashCode() dalam koleksi ialah tugas yang bernuansa, sangat dipengaruhi oleh corak penggunaan tertentu. Walau bagaimanapun, pendekatan yang diiktiraf secara meluas dan berkesan telah digariskan oleh Josh Bloch dalam karya seminalnya, "Effective Java" (Item 8, edisi kedua).
Menurut Bloch's cadangan, langkah-langkah berikut harus diikuti untuk mencipta kod hash() yang cekap kaedah:
Kira kod cincang c untuk setiap medan f berdasarkan jenis:
Gabungkan nilai cincang yang dikira c dengan hasil:
result = 37 * result + c
Pendekatan ini memastikan pengagihan nilai hash yang betul untuk kebanyakan kes penggunaan dengan menggabungkan secara berkesan kod cincang semua medan yang diuji dalam kaedah equals(). Pendaraban dengan 37 dalam langkah gabungan meningkatkan lagi taburan.
Walaupun mungkin tidak ada pelaksanaan "terbaik" secara universal, pendekatan yang disyorkan Bloch menyediakan asas yang kukuh untuk mencipta Kod hash( ) kaedah untuk koleksi. Dengan mempertimbangkan dengan teliti corak penggunaan dan menggunakan langkah-langkah yang digariskan, pembangun boleh memastikan bahawa koleksi mereka berprestasi optimum berkenaan dengan operasi berasaskan cincang seperti contains() dan get().
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kaedah hashCode() Teguh untuk Koleksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!