5

我想从 Scala 列表中提取不同的元素,但我不想使用自然相等关系。我该如何指定它?

我是否必须重写函数或者有什么方法(可能使用我缺少的一些隐式定义)来调用distinct具有自定义相等关系的方法?

4

1 回答 1

8

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
于 2012-11-13T15:43:04.767 回答