Java中的2種集合排序方法介紹
更新時(shí)間:2014年10月13日 09:23:01 作者:shijiebei2009
這篇文章主要介紹了Java中的2種集合排序方法介紹,本文直接給出代碼,相關(guān)說(shuō)明請(qǐng)看代碼中的注釋,需要的朋友可以參考下
直接上代碼:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * <p> * ClassName CollectionsSort * </p> * <p> * Description 主要介紹兩種集合的排序算法<br/> * 第一:java.util.Collections.sort(java.util.List),要求所排序元素必須實(shí)現(xiàn)java.lang.Comparable接口 <br/> * 第二:java.util.Collections.sort(java.util.List, java.util.Comparator),這個(gè)方法要求實(shí)現(xiàn)java.util.Comparator接口 <br/> * 第三:下面的例子使用的是對(duì)int型屬性排序,對(duì)String屬性排序可以使用以下方法<br/> * public int compareTo(Cat o){return this.getName().compareTo(o.getName(0);}<br/> * 第四:compareTo()函數(shù)的說(shuō)明 <br/> * 如果 結(jié)果;<br/> * <0 a<b ;<br/>= * ==0 a==b;<br/> * >=0 a>b; * </p> * * @author wangxu wangx89@126.com * <p> * Date 2014-9-16 下午04:52:57 * </p> * @version V1.0 * */ public class CollectionsSort { public static void main(String[] args) { // method1();測(cè)試第一個(gè)方法 method2();// 測(cè)試第二個(gè)方法 } public static void method1() { List<Cat> list = new ArrayList<Cat>(); Cat c = new Cat("a", 10); list.add(c); c = new Cat("b", 20); list.add(c); c = new Cat("c", 3); list.add(c); // 升序排列輸出 Collections.sort(list); System.out.println(list); // 降序排列輸出 Collections.sort(list, Collections.reverseOrder()); System.out.println(list); } public static void method2() { List<Cat> list = new ArrayList<Cat>(); Cat c = new Cat("a", 10); list.add(c); c = new Cat("b", 20); list.add(c); c = new Cat("c", 3); list.add(c); Comparator<Cat> catComparator = new Cat(); // 升序排列輸出 Collections.sort(list, catComparator); System.out.println(list); // 降序排列輸出 catComparator = Collections.reverseOrder(catComparator); Collections.sort(list, catComparator); System.out.println(list); } } class Cat implements Comparable<Cat>, Comparator<Cat> { private int age; private String name; public Cat() { } public Cat(String name, int age) { this.age = age; this.name = name; } public int getAge() { return this.age; } public String getName() { return this.name; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } // 實(shí)現(xiàn)了Comparable接口,不要重寫(xiě)該方法 @Override public int compareTo(Cat o) { // TODO Auto-generated method stub return this.age - o.age; } @Override public String toString() { // TODO Auto-generated method stub return "名字:" + getName() + ",年齡:" + getAge(); } // 實(shí)現(xiàn)了Comparator接口,需要重寫(xiě)該方法 @Override public int compare(Cat o1, Cat o2) { // TODO Auto-generated method stub return o1.getAge() - o2.getAge(); } }
相關(guān)文章
Mybatis的特點(diǎn)及優(yōu)點(diǎn)
Mybatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis。mybatis有哪些特點(diǎn)和優(yōu)點(diǎn)呢?通過(guò)本文一起學(xué)習(xí)吧2016-12-12SpringBoot整合BootStrap實(shí)戰(zhàn)
這篇文章主要介紹了SpringBoot整合BootStrap實(shí)戰(zhàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java8 自定義CompletableFuture的原理解析
這篇文章主要介紹了Java8 自定義CompletableFuture的原理解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11MyBatis 執(zhí)行動(dòng)態(tài) SQL語(yǔ)句詳解
大家對(duì)mybatis執(zhí)行任意sql語(yǔ)句都了解,那么MyBatis執(zhí)行動(dòng)態(tài)SQL語(yǔ)句呢?下面腳本之家小編給大家解答下mybatis執(zhí)行動(dòng)態(tài)sql語(yǔ)句的方法,非常不錯(cuò),感興趣的朋友參考下吧2016-08-08Java基礎(chǔ)類庫(kù)之StringBuffer類用法詳解
String類是在所有開(kāi)發(fā)項(xiàng)目開(kāi)發(fā)之中一定會(huì)使用的一個(gè)功能類。雖然String類很好用,但也有弊端——內(nèi)容不允許頻繁修改,所以為了解決問(wèn)題,我們提供了StringBuffer類。本文就來(lái)講講StringBuffer類的用法2022-07-07java中使用session監(jiān)聽(tīng)實(shí)現(xiàn)同帳號(hào)登錄限制、登錄人數(shù)限制
本文主要介紹了java中使用session監(jiān)聽(tīng)實(shí)現(xiàn)同帳號(hào)登錄限制、登錄人數(shù)限制,通過(guò)session來(lái)監(jiān)聽(tīng)在線人數(shù)和登陸限制,有需要的童鞋可以了解一下。2016-10-10