2017-12-03 248 views
1

我有一個特定的類,我們稱之爲ClassX。 ClassX是一個簡單的小班;它有幾個數據成員,一個構造函數和一個嵌套類(不太簡單)。嵌套類是專門用於定義一個比較,而這種寫法:使用嵌套在另一個類中的類中定義的比較器實現Collections.sort

public static Comparator<ClassX> classXComparator = new Comparator<ClassX>() 
{ 
    public int compare(ClassX x1, ClassX x2) 
    { 
     //code that compares two data members and returns -1 for x2>x1, 1 for x1>x2, 
     //0 for x1 = x2 
    } 
} 

我也有另一個類,姑且稱之爲ClassA的。 ClassA是我的項目的主要類,並且有一個ClassX的ArrayList稱爲條目。我想在條目上調用Collections.sort();然而,我只是無法弄清楚如何。事情我已經試過這份名單包括:

  • Collections.sort(entries, ClassX.classXComparator.compare(ClassX, ClassX));
  • Collections.sort(entries, ClassX.classXComparator.compare(ClassX a, ClassX b));
  • Collections.sort(entries, classXComparator.compare());
  • Collections.sort(entries, ClassX.compare(ClassX, ClassX));

我難倒。有人可以幫我嗎?

回答

1

,瞭解哪些在classXComparator聲明發生的樣子:

public static Comparator<ClassX> classXComparator = <something> 

這聲明classXComparatorComparator<ClassX>類型的static領域,這恰恰是sort(...)第二個參數的類型。因此,調用sort應該如下:

Collections.sort(entries, ClassX.classXComparator); 
相關問題