gpt4 book ai didi

java - 以对象值作为键的 HashMap

转载 作者:行者123 更新时间:2023-12-01 18:02:46 25 4
gpt4 key购买 nike

假设我有 2 个节点列表(节点是一些可比较的对象,细节并不重要)。我想找到哪些节点出现在两个列表中 - 不一定是相同的 Node 对象,而是compareTo 返回 0 的节点。

例如,nodeA 在列表 A 上,nodeB 在列表 B 上。它们不是同一个 Node,但 nodeA.compareTo(nodeB) 将返回 0(相等)。

我想通过迭代列表 A 并将节点放入 HashMap/HashSet 中,然后迭代列表 B 并检查哪些节点已插入到 HashMap/HashSet 中来解决此问题。问题是,这不起作用,因为 HashMap 不会认为节点相等,除非它们是相同的实际节点。

如何解决这个问题?请注意,我不是寻找此问题的其他解决方案,而是为了了解是否(以及如何)在给定的示例场景中使用 HashMap、HashSet 或其他类似的数据结构。

最佳答案

您可以通过重写 Node 对象中的 equals 和 hashcode 方法以使用与compareTo 方法相同的标准来解决这个问题(如果我理解正确的话)。

关于java - 以对象值作为键的 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39406233/

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