gpt4 book ai didi

java - 在 Java 中将第五项插入 HashMap 的错误

转载 作者:行者123 更新时间:2023-11-30 09:08:04 25 4
gpt4 key购买 nike

我有一个有线错误,

HashMap map =new HashMap<String, String> ()

我将项目添加到 map ,( map 从大小 2 开始)

table   HashMap$HashMapEntry[2]  (id=830028484912)  
[0] null
[1] null

添加 2 个项目后 map 增长到 4,看起来像

table   HashMap$HashMapEntry[4]  (id=830055921064)  
[0] HashMap$HashMapEntry (id=830055921104)
[1] null
[2] HashMap$HashMapEntry (id=830055922960)
[3] null

再添加 2 个项目(总共 4 个)后,它看起来像

table   HashMap$HashMapEntry[4]  (id=830055921064)  
[0] HashMap$HashMapEntry (id=830055921104)
[1] HashMap$HashMapEntry (id=830055930192)
[2] HashMap$HashMapEntry (id=830055922960)
[3] HashMap$HashMapEntry (id=830055933488)

添加第五个项目后它应该增长到 8 并包含 5 个项目,但它只包含 4

table   HashMap$HashMapEntry[8]  (id=830055946352)  
[0] null
[1] HashMap$HashMapEntry (id=830055930192)
[2] HashMap$HashMapEntry (id=830055922960)
[3] HashMap$HashMapEntry (id=830055946408)
[4] HashMap$HashMapEntry (id=830055921104)
[5] null
[6] null
[7] null

当所有键和值都不同时,我使用 put 插入项目,

我找到了一个解决方案,但它是一个糟糕的解决方案,重新配置 HashMap 以从更多的项目开始,然后我放入,例如在这种情况下,任何超过 5 的项目都适合,但是我将它作为基础设施的一部分并且我不'想限制它,我希望它在需要时增长。

最佳答案

很可能发生了哈希冲突,您在上面看到的其中一个 HashMapEntry 包含对下一个 HashMapEntry 的引用,类似这样:

table   HashMap$HashMapEntry[8] 
[0] null
[1] HashMap$HashMapEntry
[2] HashMap$HashMapEntry
[3] HashMap$HashMapEntry -> HashMap$HashMapEntry
[4] HashMap$HashMapEntry
[5] null
[6] null
[7] null

请测试您是否可以获取您已经放入HashMap中的所有5个条目。如果可以,那么这只是哈希冲突。这是意料之中的正常现象。

关于java - 在 Java 中将第五项插入 HashMap 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23792020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com