2011-02-13 56 views
1

如何在Scala中对我的对象的向量进行排序?是否有一些图书馆排序程序,或者我必须自己写吗?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; 
     } 
    } 
} 

回答

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

又见方法sortWithsorted,以及由Ordering对象提供的方法。

+0

非常感谢。我从来没有猜测提供“_.x”参数 - 因为我的eclipse自动完成指示“sortBy()”不带参数。 – drozzy 2011-02-13 02:26:31