How do I sort an array in Scala?

后端 未结 7 690
北恋
北恋 2020-12-07 12:54

I can see there\'s a sorting object, Sorting, with a quicksort method, quickSort, on it.

What would be a code example of using it, sorting

7条回答
  •  不思量自难忘°
    2020-12-07 13:50

    Sorting.quickSort declares functions for taking an Array of numbers or Strings, but I'm assuming you mean you want to sort a list of objects of your own classes?

    The function I think you're looking at is

    quickSort [K](a : Array[K])(implicit view$1 : (K) => Ordered[K]) : Unit
    

    Which, if I'm reading this right, means that the objects in the Array must have the Ordered trait. So your class must extend Ordered (or must mix it in), and therefore must implement the compare method of that trait.

    So to rip off an example from the book:

    class MyClass(n: Int) extends Ordered[MyClass] {
       ...
      def compare(that: MyClass) =
        this.n - that.n
    }
    

    So given an Array[MyClass], then Sorting.quickSort should work.

提交回复
热议问题