我可以看到有一个排序对象Sorting
,上面有一个quicksort方法quickSort
。
使用它,对任意类型的对象数组进行排序的代码示例是什么?看起来我需要传入一个Orderable
特征的实现,但是我不确定语法。
另外,我更喜欢用“Scala方式”来回答这个问题。我知道我可以只使用Java库。
发布于 2009-07-15 15:04:25
Sorting.quickSort声明了接受数字或字符串数组的函数,但我假设您的意思是要对自己的类的对象列表进行排序?
我认为您正在查看的函数是
quickSort [K](a : Array[K])(implicit view$1 : (K) => Ordered[K]) : Unit
如果我没理解错的话,这意味着数组中的对象必须具有Ordered
特征。因此,您的类必须扩展Ordered
(或者必须混合它),因此必须实现该特征的compare
方法。
所以从书中摘取一个例子:
class MyClass(n: Int) extends Ordered[MyClass] {
...
def compare(that: MyClass) =
this.n - that.n
}
因此,给定一个ArrayMyClass,那么Sorting.quickSort应该可以工作。
发布于 2011-08-24 04:23:45
发布于 2012-12-01 06:08:49
现在这个也行得通:
List(3,7,5,2).sorted
https://stackoverflow.com/questions/1131925
复制相似问题