<强> 1,收藏。一排序强>
算法底层实际是将集合转换成数组,再执行arrays.sort,数组。排序利用归并排序,优化的快排,timSort等方式。
<强> 2,对字符串类型数据排序强>
public static void collectionSort (), { List(); unSorted.add (“10“); unSorted.add (“99”); unSorted.add (“21”); Collections.sort(无序); (String :无序),{ System.out.print (a +“,,,); } }
输出:21 99
<强> 3,对javabean类型数据排序强>
<强>(1)方式一强>
import java.io.Serializable; public class  unSortedBean implements 可序列化的{ private static  final long serialVersionUID =, 1 l; private String 名称; private String 年龄; private int 秩序; public String  getName (), { return 名称; } public void  setName (String 名称),{ this.name =,名称; } public String  getAge (), { return 年龄; } public void  setAge (String 年龄),{ 时间=this.age 年龄; } public int  getOrder (), { return 秩序; } public void  setOrder (int 顺序),{ 时间=this.order 秩序; } }
以下为排序代码,编译期就报错:
public static void javaBeanSort (), { List(); unSortedBean a1 =, new unSortedBean (); a1.setName(“张三“); a1.setAge (“24”); a1.setOrder (9); unSorted.add (a1); unSortedBean a2 =, new unSortedBean (); a2.setName(“李四“); a2.setAge (“22”); a2.setOrder (5); unSorted.add (a2); unSortedBean a3 =, new unSortedBean (); a3.setName(“王五“); a3.setAge (“36”); a3.setOrder (10); unSorted.add (a3); Collections.sort(无序); }
原因:字符串实现了可比接口,而自定义的javabean未实现,可以用这种方式排序
Collections.sort(无序,new Comparator< unSortedBean> (), { @Override public int 比较(unSortedBean arg0, unSortedBean __arg1), {//,升叙 -arg1.getOrder return arg0.getOrder () (); } }); (unSortedBean 豆:分类),{ System.out.print (JSONObject.fromObject (bean)); }
输出:{“order": 5“name":“李四“,“age":“22“} {“order": 9,“name":“张三“,“age":“24“} {“order": 10“name":“王五“,“age":“36“}
<强>(2)方式二强>
也可以用collections.sort();方式,只需要javabean实现可比接口
import java.io.Serializable; public class  unSortedBean implements 可序列化的,,Comparable{ private static  final long serialVersionUID =, 1 l; private String 名称; private String 年龄; private int 秩序; public String  getName (), { return 名称; } public void  setName (String 名称),{ this.name =,名称; } public String  getAge (), { return 年龄; } public void  setAge (String 年龄),{ 时间=this.age 年龄; } public int  getOrder (), { return 秩序; } public void  setOrder (int 顺序),{ 时间=this.order 秩序; } @Override public int  compareTo (unSortedBean arg0), {//,TODO 升叙 return this.order-arg0.getOrder (); } }
输出:{“order": 5“name":“李四“,“age":“22“} {“order": 9,“name":“张三“,“age":“24“} {“order": 10“name":“王五“,“age":“36“}