2011-02-13 78 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