【发布时间】:2011-02-09 08:38:30
【问题描述】:
我正在寻找创建身份集的简单方法。我只是希望能够在遍历图表时跟踪我是否“看到”了特定对象。
我不能使用常规 Set,因为 Set 使用“==”(Scala 中的 equals 方法)来比较元素。我想要的是一个使用“eq”的集合。
有没有什么方法可以在 Scala 中创建一个使用某些应用程序指定的方法来测试相等性而不是在集合元素上调用 equals 的 Set?我寻找了某种可以覆盖但没有找到的“wrapEquals”方法。
我知道我可以使用 Java 的 IdentityHashMap,但我正在寻找更通用的东西。
我的另一个想法是将每个 set 元素包装在另一个根据 eq 实现 equals 的对象中,但是为了获得新的 equals 实现而生成大量新对象是浪费的。
谢谢!
【问题讨论】: