对Scala数组的一部分进行排序

时间:2016-10-11 13:20:26

标签: arrays scala sorting

在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

1 个答案:

答案 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)