class People {
int height;
int weight;
}
List<People> list = new ArrayList<People>();
我想將字段'height'作爲鍵的列表進行排序。如何將字段設置爲鍵並對類進行排序
是否有我可以使用的任何預定義的方法?我怎樣才能將身高設置爲我的鑰匙?
class People {
int height;
int weight;
}
List<People> list = new ArrayList<People>();
我想將字段'height'作爲鍵的列表進行排序。如何將字段設置爲鍵並對類進行排序
是否有我可以使用的任何預定義的方法?我怎樣才能將身高設置爲我的鑰匙?
你可以讓你的類實現Comparable<People>
,這就造成了所謂一個自然順序,但人們看起來並不直觀根據高度ays「更多」或「更少」。更好的方法可能是創建一個Comparator
,然後您可以與Collections.sort
一起使用對列表進行排序。
(附註:這是慣例中的Java類名是奇異的是什麼類表示,所以你的情況,這將是更清晰,以它命名Person
代替)
- 爲了要將某些對象放入特定的順序中,通常建議使用Set from Java Collection Framework。並且您有兩個選項: 在同一類Comparable
中執行並覆蓋方法compareTo
。 http://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);
我也可以使用Comparator對元組進行排名。 – Zoe