交叉的自定义相等

时间:2017-03-10 18:35:17

标签: scala

我正在尝试找到具有相关类的两个序列之间的交集和并集。为了实现这一点,我希望能够为交叉函数提供自定义相等性检查。我不想覆盖equals和hashcode函数。我想要一个交叉函数,它也需要一个函数来检查是否相等。

如果没有编写自定义的交集和联合函数,是否有任何干净的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

标准库可能不支持您所询问的内容。编写自定义交集/联合方法相当容易。另一种可能性是像这样包装你的实例:

class Wrapper[E](val wrapped: E) {
    // Override equals/hashCode here
}

然后计算Wrapper[E]的并集/交集,然后使用unionOfWrappers.map(_.wrapped)来获得所需内容。当然,这将导致创建许多Wrapper个实例并收集垃圾。