collections.sort对javabean的列表

  

<强> 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“}


collections.sort对javabean的列表