Java中的2種集合排序方法介紹
更新時間:2014年10月13日 09:23:01 作者:shijiebei2009
這篇文章主要介紹了Java中的2種集合排序方法介紹,本文直接給出代碼,相關說明請看代碼中的注釋,需要的朋友可以參考下
直接上代碼:
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),要求所排序元素必須實現(xiàn)java.lang.Comparable接口 <br/> * 第二:java.util.Collections.sort(java.util.List, java.util.Comparator),這個方法要求實現(xiàn)java.util.Comparator接口 <br/> * 第三:下面的例子使用的是對int型屬性排序,對String屬性排序可以使用以下方法<br/> * public int compareTo(Cat o){return this.getName().compareTo(o.getName(0);}<br/> * 第四:compareTo()函數(shù)的說明 <br/> * 如果 結果;<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();測試第一個方法 method2();// 測試第二個方法 } 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; } // 實現(xiàn)了Comparable接口,不要重寫該方法 @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(); } // 實現(xiàn)了Comparator接口,需要重寫該方法 @Override public int compare(Cat o1, Cat o2) { // TODO Auto-generated method stub return o1.getAge() - o2.getAge(); } }
相關文章
Java8 自定義CompletableFuture的原理解析
這篇文章主要介紹了Java8 自定義CompletableFuture的原理解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11MyBatis 執(zhí)行動態(tài) SQL語句詳解
大家對mybatis執(zhí)行任意sql語句都了解,那么MyBatis執(zhí)行動態(tài)SQL語句呢?下面腳本之家小編給大家解答下mybatis執(zhí)行動態(tài)sql語句的方法,非常不錯,感興趣的朋友參考下吧2016-08-08java中使用session監(jiān)聽實現(xiàn)同帳號登錄限制、登錄人數(shù)限制
本文主要介紹了java中使用session監(jiān)聽實現(xiàn)同帳號登錄限制、登錄人數(shù)限制,通過session來監(jiān)聽在線人數(shù)和登陸限制,有需要的童鞋可以了解一下。2016-10-10