更新時(shí)間:2020-07-07 16:32:07 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2492次
java中提供了對(duì)集合進(jìn)行操作的工具類Collections,
Collections對(duì)集合中的元素提供了默認(rèn)的排序方法,sort(),根據(jù)元素的自然順序?qū)χ付斜戆瓷蜻M(jìn)行排序。
這里舉兩個(gè)例子來(lái)說(shuō)明下這個(gè)方法
首先是一個(gè)簡(jiǎn)單的例子
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]
對(duì)于這個(gè)例子,Integer類自己實(shí)現(xiàn)好了Comparable接口,并且重寫(xiě)了comepareTo方法,所以我們可以直接調(diào)用方法就可以實(shí)現(xiàn)排序,那么有些人可能會(huì)有些疑問(wèn),下面的例子可能會(huì)解決你的這些問(wèn)題。
2.對(duì)于一些,自己創(chuàng)建的類,比如Person類,想根據(jù)里面的年齡屬性進(jìn)行排序的話,那么就需要實(shí)現(xiàn)Comparable接口,并且重寫(xiě)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技術(shù)內(nèi)容
Java中List集合:http://www.dabaquan.cn/tutorial_java_advance/637.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)之Java中的list集合排序方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743