在Java中我可以写
private final List<Point> points = ...;
...
Collections.sort(points.subList(start, end), sorter);
(这是用于以特定方式对整个List
进行排序的算法的一部分。)
我希望能够使用Array
在Scala中表达等效内容。我试过这个:
val a = Array("z", "y", "x", "w", "v")
val b = a.slice(1, 4)
Sorting.quickSort(b)
但不幸的是,它并不像slice
副本a
那样有用。如何在Scala中对数组的一部分进行排序?
编辑:意图是sorter
成为Scala Ordering
。
答案 0 :(得分:4)
由于Scala中的Array[T]
为with one to one correspondents to a Java array,您可以使用相同的java.util.Arrays.sort
:
scala> val arr = Array(1, 5, 2, 3, 7, 9)
arr: Array[Int] = Array(1, 5, 2, 3, 7, 9)
scala> java.util.Arrays.sort(arr, 0, 3)
scala> arr
res22: Array[Int] = Array(1, 2, 5, 3, 7, 9)