在Scala中排序矢量对象

时间:2011-02-13 01:19:57

标签: sorting scala

如何在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;
        }
    }
}

1 个答案:

答案 0 :(得分:6)

private def foo(data: Vector[Data2D]): Int = data.sortBy(_.x)

另请参阅方法sortWithsorted,以及Ordering对象提供的方法。