藉助Collections.sort方法完成了一個小小的排序功能,也藉此對Collections.sort方法有了簡單的認識。
java 集合類的排序主要是用Collections.sort方法,Collections和Collection是不一樣的,前者是類,後者是介面。提示:實現介面的方法時,只需要比較兩個數,大的返回1,相等返回0,小於返回-1。簡單的說就是在方法裡這樣寫:num>s.num?1:(num==s.num?0:-1); num是被比較的數,s.num是比較的數,
1.Collection.sort(List arg0);
這種是最簡單的一種排序方法,只需要實現他的Comparable 介面及實現public int compareTo(Object arg0)方法即可。
假如你要對List數組people排序,只需要Collections.sort(people)既可。
2.Collection.srot(List arg0,Comparator arg1);
這種加入了比較子,具有更大的靈活性,便於管理,比較子可作為內部靜態類的,以便於管理。比較子必須實現Comparator介面。
假如想要根據List內對象的某個屬性來排序的話,就需要加入一個比較子。例如,people為People對象集,People對象有age屬性,現需要對所有People對象實現按年齡大小排序,具體代碼如下:
在People類內加入內部靜態類PeopleComparator:
//不考慮age屬性為空白的情況
public static class PeopleComparator implements Comparator<People>{
public int compare(People o1, People o2) {
return o1.getAge().compareTo(o2.getAge());
}
}
程式中有List<People> people,要對people這個集合排序,加入
Collections.sort(people, new People.PeopleComparator());既可。
本人比較菜,如有錯誤的地方,還望觀者指正。拜謝!!!!呵呵^_^