更新時間:2020-07-07 16:32:07 來源:動力節(jié)點 瀏覽2525次
java中提供了對集合進行操作的工具類Collections,
Collections對集合中的元素提供了默認的排序方法,sort(),根據(jù)元素的自然順序?qū)χ付斜戆瓷蜻M行排序。
這里舉兩個例子來說明下這個方法
首先是一個簡單的例子
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
?
public?class?Test_02?{
public?static?void?main(String[]?args)?{
//創(chuàng)建
List?list?=?new?ArrayList();
list.add(3);
list.add(2);
list.add(5);
list.add(7);
System.out.println(list);
//排序
Collections.sort(list);
System.out.println(list);
}
}
輸出結(jié)果:
[3,2,5,7]
[2,3,5,7]
對于這個例子,Integer類自己實現(xiàn)好了Comparable接口,并且重寫了comepareTo方法,所以我們可以直接調(diào)用方法就可以實現(xiàn)排序,那么有些人可能會有些疑問,下面的例子可能會解決你的這些問題。
2.對于一些,自己創(chuàng)建的類,比如Person類,想根據(jù)里面的年齡屬性進行排序的話,那么就需要實現(xiàn)Comparable接口,并且重寫compareTo方法,這樣就可以根據(jù)自己的需要,調(diào)用sort方法去排序啦,代碼附下
public?class?Person?implements?Comparable?{
private?String?name;
private?int?age;
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
public?int?getAge()?{
return?age;
}
public?void?setAge(int?age)?{
this.age?=?age;
}
public?Person()?{
}
public?Person(String?name,int?age)?{
this.name?=?name;
this.age?=?age;
}
@Override
public?int?compareTo(Person?p)?{
if(age?>?p.getAge())?{
return?1;
}else?if(age?==?p.getAge())?{
return?0;
}
return?-1;
}
@Override
public?String?toString()?{
return?"Person?[name="?+?name?+?",?age="?+?age?+?"]";
}
}
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
?
public?class?Test_01?{
public?static?void?main(String[]?args)?{
List?list?=?new?ArrayList();
list.add(new?Person("張三",22));
list.add(new?Person("李四",19));
list.add(new?Person("王五",23));
list.add(new?Person("趙六",18));
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
}
輸出結(jié)果:
[Person[name=張三,age=22],Person[name=李四,age=19],Person[name=王五,age=23],Person[name=趙六,age=18]]
[Person[name=趙六,age=18],Person[name=李四,age=19],Person[name=張三,age=22],Person[name=王五,age=23]]
Java技術內(nèi)容
Java中List集合:http://www.ilovecolors.com.cn/tutorial_java_advance/637.html
以上就是動力節(jié)點java培訓機構的小編針對“編程基礎之Java中的list集合排序方法”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業(yè)
業(yè)余時間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習