Persekitaran: jdk1.8
Masalah: Semasa mempelajari HashMap, saya mendapati kaedah afterNodeInsertion dipanggil pada penghujung kaedah putVal
...
++modCount;
if (++size > threshold)
resize();
afterNodeInsertion(evict);
return null;
Saya mencari kaedah afterNodeInsertion sekali lagi dan mendapati ia dipanggil di banyak tempat, tetapi pelaksanaannya adalah
void afterNodeInsertion(boolean evict) { }
Kaedah kosong? ? Ingin tahu apakah kaedah ini?
Malah, telah disebut dalam kod sumber bahawa ketiga-tiga kaedah ini semuanya untuk mewarisi perkhidmatan kelas
LinkedHashMap
HashMap
.HashMap
的LinkedHashMap
类服务的。
🎜KaedahLinkedHashMap
中被覆盖的afterNodeInsertion
afterNodeInsertion
yang diganti dalamLinkedHashMap
digunakan untuk memanggil semula dan mengalih keluar objek terawal yang diletakkan dalam Map🎜