在创建用于一种 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 实现,我能做些什么吗?