所以我有这个方法可以将对象添加到显示中。首次打开显示时,所有现有对象都会被 1 个 1 添加到 HashMap 中。之后用户可以添加更多,一次添加 1 个,这会将新对象放入 HashMap。
Key 是 Object,Value 是一个自定义类,其中包含 Object 和一些关于它的其他变量。
这一切都很好,但是当显示器关闭并打开一个新实例时,它应该重新加载所有对象(包括用户在使用期间创建和保存的对象),但出于某种原因,对于任何新创建的对象那些,它在执行 containsKey 时发现不正确的匹配项。
我真的不明白为什么它不应该找到匹配项。当我执行 containsValue 时,它没有找到任何不正确的匹配项(它应该正常工作)但它没有帮助,因为当我使用 HashMap.put(K, V) 时,它会覆盖它会为 containsKey 返回误报的匹配项.
代码所做的只是遍历每个对象,检查 HashMap 是否已经包含键,如果包含,则返回键的值,否则根据传递给方法的键创建一个值并将其放入 hashmap 中。
很抱歉,我无法发布代码,所以如果没有它你无法提供帮助,我理解,但它是为了工作,我不确定是否可以发布代码,即使它只是一个片段。
任何帮助或指导将不胜感激,我仍在谷歌上搜索,看看是否能找到任何信息。
编辑:我找到了解决方案。hashcode 函数返回的值本质上是一个索引。问题是它在初始对象之后被重置,因此新添加的对象将从零开始覆盖现有对象。我修改了哈希码及其工作。
感谢大家的帮助。