2013-08-03 38 views
0
class People { 
    int height; 
    int weight; 
} 

List<People> list = new ArrayList<People>(); 

我想將字段'height'作爲鍵的列表進行排序。如何將字段設置爲鍵並對類進行排序

是否有我可以使用的任何預定義的方法?我怎樣才能將身高設置爲我的鑰匙?

回答

0

你可以讓你的類實現Comparable<People>,這就造成了所謂一個自然順序,但人們看起來並不直觀根據高度ays「更多」或「更少」。更好的方法可能是創建一個Comparator,然後您可以與Collections.sort一起使用對列表進行排序。

(附註:這是慣例中的Java類名是奇異的是什麼類表示,所以你的情況,這將是更清晰,以它命名Person代替)

0

- 爲了要將某些對象放入特定的順序中,通常建議使用Set from Java Collection Framework。並且您有兩個選項: 在同一類Comparable中執行並覆蓋方法compareTohttp://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

在新類中實現接口Comparator並覆蓋compare方法。 http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html

在你的情況下,使用列表你仍然可以做這些也比調用方法.sort()Collections

class HightSort implements Comparator<People > { 
    public int compare(People one, People two) { 
    return one.hight-two.hight; 
    } 
    } 

Collections.sort(list); 
相關問題