我使用存储 JSONObjects 的 Hashset。我知道 hashset 使用 hashCode() 和 equals 方法来确定对象是否重复。
检查后,我可以看到相同的 JSONObject 返回 2 个不同的 hascodes,即使 equals() 和 similar() 返回 true,这基本上意味着 JSONObject 没有正确覆盖 hashcode()。
我知道如果我不使用像 Gson 或 Jackson 这样的库,我可能会解决这个问题,但我的代码在使用 JSONObject 方面投入了大量资金,并将所有代码重构为使用其中一个库将花费 2 很多时间。
我的问题 - 有没有办法设置决定重复的 hashSet 方式?
就像是
HashSet<JSONObject> hs = new HashSet(); hs.setDuplicateStrategy((o1, o2) => { o1.similar(o2)});
欢迎任何其他解决方案
HUH函数
相关分类