我想从 Scala 列表中提取不同的元素,但我不想使用自然相等关系。我该如何指定它?
我是否必须重写函数或者有什么方法(可能使用我缺少的一些隐式定义)来调用distinct
具有自定义相等关系的方法?
我想从 Scala 列表中提取不同的元素,但我不想使用自然相等关系。我该如何指定它?
我是否必须重写函数或者有什么方法(可能使用我缺少的一些隐式定义)来调用distinct
具有自定义相等关系的方法?
distinct
不期望排序算法 - 它使用 equals 方法(source)。
实现您想要的一种方法是创建自己的排序并将其传递给 a SortedSet
,它需要一个Ordering
:
implicit val ord = new Ordering[Int] {
def compare(i: Int, j: Int) = /* your implementation here */
}
val sortedList = collection.immutable.SortedSet(list: _*)/*(ord)*/.toList