Сортировать Вектор объектов в Scala - PullRequest
1 голос
/ 13 февраля 2011

Как мне отсортировать Вектор моих объектов в Scala? Существуют ли какие-либо процедуры сортировки библиотек или я должен написать свою собственную?

У меня есть класс:

class Data2D(var x:Int, var y:Int)

и я передаю их вектор своей функции:

private def foo(data: Vector[Data2D]): Int = {
     data:Vector sortedOnX = // ??
}

как мне отсортировать вектор на основе значений x объектов Data2D?

В 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 Ответ

6 голосов
/ 13 февраля 2011
private def foo(data: Vector[Data2D]): Int = data.sortBy(_.x)

См. Также методы sortWith и sorted, а также методы, предоставляемые объектом Ordering.

...