【发布时间】:2010-11-14 11:36:57
【问题描述】:
我在创建用于一种 HatTrie 的 HashSet[Array[Byte]] 时偶然发现了这个问题。
显然,数组上的标准 equals() 方法检查身份。如何为 HashSet 提供一个使用 .deepEquals() 检查元素是否包含在集合中的替代比较器?
基本上,我希望这个测试通过:
describe ("A HashSet of Byte Array") {
it("must contain arrays that are equivalent to one that has been added") {
val set = new HashSet[Array[Byte]]()
set += "ab".getBytes("UTF-8")
set must contain ("ab".getBytes("UTF-8"))
}
}
我无法将 Array[Byte] 包装到另一个对象中,因为它们有很多。如果没有为此目的编写一个新的 HashSet 实现,我能做些什么吗?
【问题讨论】: