如何在Scala中对我的对象的Vector进行排序?是否有一些库排序例程,还是我必须自己编写?
我有一个班级:
class Data2D(var x:Int, var y:Int)
我将这些传递给我的函数:
private def foo(data: Vector[Data2D]): Int = {
data:Vector sortedOnX = // ??
}
如何根据Data2D对象的x值对矢量进行排序?
在java中我做:
Collections.sort(data, XComparator.INSTANCE);
其中XComparator是:
enum XComparator implements Comparator<Data2D> {
INSTANCE;
@Override
public int compare(Data2D o1, Data2D o2) {
if (o1.getX() <= o2.getX()) {
return -1;
} else {
return 1;
}
}
}
答案 0 :(得分:6)
private def foo(data: Vector[Data2D]): Int = data.sortBy(_.x)
另请参阅方法sortWith
和sorted
,以及Ordering
对象提供的方法。