IntelliJIdea:HashMap 调试窗口未显示与链表相关的完整详细信息

我的简单 java 代码如下所示:


String s1 = "FB";


String s2 = "Ea";


System.out.println(s1.hashCode() == s2.hashCode()); // true


Map<String, Integer> map = new HashMap<>();


map.put(s1, 1);


map.put(s2, 2);

虽然调试这段代码在IntelliJIdea,我不能看到HashMap的数据结构中创建的链接列表,另外,还创建了两个桶,而不是一个虽然哈希码是相同的s1和s2。能否请您澄清一下?


开满天机
浏览 630回答 2
2回答

茅侃侃

默认情况下,IDEA 具有简化的地图视图。要查看Right click地图对象上需要的所有内部字段,然后View as->&nbsp;Object,然后对HashMap$Node对象执行相同操作。关于table大小,它默认有 16 个桶:java.util.HashMap#DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16

holdtom

你需要做三件事。这不是直截了当的,我花了一段时间才弄明白,因为以前没有人回答过。如果选中该值,则需要取消选中该值。要打开该窗口,您需要在调试器内右键单击,然后选择“自定义数据视图...”现在您应该在该表中看到一个列表。其次,您需要右键单击要查看其上的下一个节点的节点,然后选择“新类级别监视”右键单击该节点并选择 putMapEntries();如您所见,FB 的下一个值是 Ea我希望这有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java