在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ HashMap#keySet()是如何獲取到map的key集合

HashMap#keySet()是如何獲取到map的key集合

clipboard.png

源碼中通過(guò)ks = new KeySet()來(lái)創(chuàng)建KeySet()的對(duì)象,但是KeySet的默認(rèn)構(gòu)造方法并沒(méi)有做啥事,他是怎么知道mapkey集合的。斷點(diǎn)打在ks = new KeySet(),執(zhí)行完該語(yǔ)句就可以知道值。有點(diǎn)不是明白。

回答
編輯回答
陌南塵

你確定沒(méi)忽略什么???

public Set<K> keySet() {
    Set<K> ks;
    // keySet為null的時(shí)候才會(huì)初始化一個(gè)KeySet對(duì)象,否則返回的是keySet;keySet不是在這里賦值的
    return (ks = keySet) == null ? (keySet = new KeySet()) : ks;
}

你上面打斷點(diǎn)在ks = new KeySet()的話(huà),只有keySetnull才會(huì)執(zhí)行到,建議你從上面Set<K> ks = keySet開(kāi)始打斷點(diǎn)

2017年11月18日 03:55