2009-09-26 64 views
0

我需要幫助將Java泛型列表傳遞給Collections.sort()。這裏是我的代碼:需要幫助將Java泛型傳遞給Collections.sort()

List<MyObject> orgMyObjectList = new ArrayList<MyObject>(); 
Collections.sort(orgMyObjectList, new Comparable<MyObject>() { 

     public int compareTo(MyObject another) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 
    }); 

但我在eclipse得到這個編譯器錯誤: 在類型集合的方法排序(名單,比較器)是不適用的參數(列表,新可比<爲MyObject>() {})

你能告訴我如何解決它嗎?

回答

10

當您需要比較器時,您正在傳入一個Comparable。

1

As Fredrik said,Collections.sort() needs a Comparator。正確的看起來是這樣的:

 
    List orgMyObjectList = new ArrayList(); 
    Collections.sort(orgMyObjectList, new Comparator() { 
     @Override 
     public int compare(MyObject o1, MyObject o2) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 
    }); 
+0

+1爲自動生成的示例。 – Fredrik 2009-09-27 06:40:07

0

是的,兩個問題。一個是指出:比較器與可比較(並且不要忘記等於)

另一個是與// TODO Auto-generated method stub發佈表明,你有很多工作要做。這是告訴你,你需要編寫比較操作。

更好地從一些非常簡單的事情開始,將這個問題引入您爲了研究問題而編寫的測試/開發程序。