cari

Rumah  >  Soal Jawab  >  teks badan

java - HashMap的key值不允许重复问题

高洛峰高洛峰2885 hari yang lalu891

membalas semua(2)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-18 10:45:24

    Adalah disyorkan agar anda melihat prinsip Peta
    Apabila peta menyimpan nilai, ia tidak menggunakan alamat objek, tetapi kod cincang objek
    Anda mula-mula meletakkan p1 sebagai kunci ke dalam peta,
    dan kemudian Apabila nilai p1 ditukar, kod cincang p1 telah berubah Apabila ia disimpan semula, peta menganggap ia adalah kunci yang berbeza, jadi ia menyimpannya.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:45:24

    Berikut ialah pelaksanaan dalaman HashMap.put

    public V put(K key, V value) {
        return putVal(hash(key), key, value, false, true);
    }
    

    Selepas p1.setAge(5), kod cincang p1 berubah dan cincang(kunci) dalam fungsi di atas berubah Walaupun kunci adalah objek yang sama, HashMap masih menyimpannya sebagai kunci baharu.

    Atas sebab kecekapan, senario ini tidak disokong. Ia boleh dianggap sebagai perangkap HashMap.

    balas
    0
  • Batalbalas