依据List内部对象的某字段进行排序的方法

上一篇 / 下一篇  2013-03-21 11:37:35 / 个人分类:其他

依据List内部对象的某字段进行排序的方法

List内部对象类IntStringtest测试用例

Collections.sort方法,实现对List的排序,需要重写Comparator方法

代码如下:

List里存放的实体

Java代码  收藏代码
  1. package org.iti.wxl.listobjectsort;  
  2.   
  3. public class IntString {  
  4.       
  5.     private Integer no;  
  6.       
  7.     private String str;  
  8.   
  9.     public Integer getNo() {  
  10.         return no;  
  11.     }  
  12.   
  13.     public void setNo(Integer no) {  
  14.         this.no = no;  
  15.     }  
  16.   
  17.     public String getStr() {  
  18.         return str;  
  19.     }  
  20.   
  21.     public void setStr(String str) {  
  22.         this.str = str;  
  23.     }  
  24.   
  25.     @Override  
  26.     public String toString() {  
  27.         return "IntString [" + (no != null ? "no=" + no + ", " : "")  
  28.                 + (str != null ? "str=" + str : "") + "]";  
  29.     }  
  30.   
  31. }  

 

Java代码  收藏代码
  1. package org.iti.wxl.listobjectsort;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Collections;  
  5. import java.util.Comparator;  
  6. import java.util.List;  
  7.   
  8. public class Test {  
  9.     public static void main(String[] args) {  
  10.         List<IntString> islist = new ArrayList<IntString>();  
  11.         IntString is1 = new IntString();  
  12.         is1.setNo(1);  
  13.         is1.setStr("计091");  
  14.   
  15.         IntString is3 = new IntString();  
  16.         is3.setNo(3);  
  17.         is3.setStr("计093");  
  18.   
  19.         IntString is2 = new IntString();  
  20.         is2.setNo(2);  
  21.         is2.setStr("计092");  
  22.   
  23.         islist.add(is1);  
  24.         islist.add(is3);  
  25.         islist.add(is2);  
  26.           
  27.         System.out.println(islist);  
  28.         Collections.sort(islist, new MyComparator());  
  29.         System.out.println(islist);  
  30.     }  
  31. }  
  32.   
  33. class MyComparator implements Comparator<Object> {  
  34.     @Override  
  35.     public int compare(Object o1, Object o2) {  
  36.         IntString iso1 = (IntString)o1;  
  37.         IntString iso2 = (IntString)o2;  
  38.         String str1 = iso1.getStr();  
  39.         String str2 = iso2.getStr();  
  40.         return str1.compareTo(str2);  
  41. //      Integer no1 = iso1.getNo();  
  42. //      Integer no2 = iso2.getNo();  
  43. //      if(no1 > no2){  
  44. //          return 1;  
  45. //      }else if(no1 < no2){  
  46. //          return -1;  
  47. //      }else{  
  48. //          return 0;  
  49. //      }  
  50.     }  
  51.   
  52. }  

 如果是String类型的数据比较大小,Comparator方法里用str1.compareTo(str2) 方法,如果是数值比较大小,则用<,=,>比较,>返回1,=返回0,<返回-1。


TAG:

 

评分:0

我来说两句

Open Toolbar