本章主題:在本章之中,對java集合 Collections.sort方法作一個簡要的回顧。java
package test; /** * @author Yshuai * @version 建立時間:2014-08-20 上午09:49:36 */ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class SortTest { public static void main(String[] args) { List<String> lists = new ArrayList<String>(); List<A> list = new ArrayList<A>(); List<B> listB = new ArrayList<B>(); lists.add("5"); lists.add("2"); lists.add("9"); Collections.sort(lists); System.out .println("// lists中的對象String 自己含有compareTo方法,因此能夠直接調用sort方法,按天然順序排序,即升序排序" + lists); // 初始化listA方法 A aa = new A(); aa.setName("aa"); aa.setOrder(1); A bb = new A(); bb.setName("bb"); bb.setOrder(2); list.add(bb); list.add(aa); Collections.sort(list); System.out.println("在你的java實體類之中設定好你的CompareTo方法" + list); // 初始化ListB方法,B沒有實現compareTo方法的狀況之下,請您在Collections.Sort方法之中給Collections穿傳遞一個CompareTo方法 B ab = new B(); ab.setName("ab"); ab.setOrder("1"); B ba = new B(); ba.setName("ba"); ba.setOrder("2"); listB.add(ba); listB.add(ab); // 根據Collections.sort重載方法來實現 Collections.sort(listB, new Comparator<B>() { @Override public int compare(B b1, B b2) { return b1.getOrder().compareTo(b2.getOrder()); } }); System.out.println(listB); } } class A implements Comparable<A> { private String name; private Integer order; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getOrder() { return order; } public void setOrder(Integer order) { this.order = order; } @Override public String toString() { return "name is " + name + " order is " + order; } @Override public int compareTo(A a) { return this.order.compareTo(a.getOrder()); } } class B { private String name; private String order; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOrder() { return order; } public void setOrder(String order) { this.order = order; } @Override public String toString() { return "name is " + name + " order is " + order; } }
寫做背景: 因爲在當前的業務當中涉及到storm的實時排序功能。在這裏對Java基礎進行簡要的回顧,並做深化。ide
總結; 排序的過程之中您有兩種簡單的辦法:this
1 實現好compareTo方法,在此時Collection.sort方法將在運行中調用Bean對象的方法
code
2 若是您沒有實現,須要爲Sort 方法指定一個比較器。orm
SimpleTips對象