亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

IntelliJIdea:HashMap 調試窗口未顯示與鏈表相關的完整詳細信息

IntelliJIdea:HashMap 調試窗口未顯示與鏈表相關的完整詳細信息

開滿天機 2021-07-22 10:45:57
我的簡單 java 代碼如下所示:String s1 = "FB";String s2 = "Ea";System.out.println(s1.hashCode() == s2.hashCode()); // trueMap<String, Integer> map = new HashMap<>();map.put(s1, 1);map.put(s2, 2);雖然調試這段代碼在IntelliJIdea,我不能看到HashMap的數據結構中創建的鏈接列表,另外,還創建了兩個桶,而不是一個雖然哈希碼是相同的s1和s2。能否請您澄清一下?
查看完整描述

2 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

默認情況下,IDEA 具有簡化的地圖視圖。要查看Right click地圖對象上需要的所有內部字段,然后View as-> Object,然后對HashMap$Node對象執行相同操作。

http://img1.sycdn.imooc.com//60f92ba90001e51a06760452.jpg

關于table大小,它默認有 16 個桶:

java.util.HashMap#DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16


查看完整回答
反對 回復 2021-07-22
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

你需要做三件事。這不是直截了當的,我花了一段時間才弄明白,因為以前沒有人回答過。

如果選中該值,則需要取消選中該值。要打開該窗口,您需要在調試器內右鍵單擊,然后選擇“自定義數據視圖...”

http://img1.sycdn.imooc.com//60f92bbc00015bbb07240721.jpg

現在您應該在該表中看到一個列表。

其次,您需要右鍵單擊要查看其上的下一個節點的節點,然后選擇“新類級別監視”

http://img1.sycdn.imooc.com//60f92bc90001b1e906120572.jpg

右鍵單擊該節點并選擇 putMapEntries();

http://img1.sycdn.imooc.com//60f92bd800016a0308120137.jpg

如您所見,FB 的下一個值是 Ea

http://img1.sycdn.imooc.com//60f92be600018ed407620554.jpg

我希望這有幫助。


查看完整回答
反對 回復 2021-07-22
  • 2 回答
  • 0 關注
  • 713 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號