`

java之List排序

    博客分类:
  • JAVA
 
阅读更多

   在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。 
  你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递一个List对象,也可以传递一个List和一个Comparator。如果列表中的元素全都是相同类型的类,并且这个类实现了Comparable接口,你可以简单的调用Collections.sort()。如果这个类没有实现Comparator,你也可以传递一个Comparator到方法sort()中,进行排序。如果你不想使用缺省的分类顺序进行排序,你同样可以传递一个Comparator到方法sort()中来进行排序。

1.比较的对象实现Comparable接口

[html] view plaincopy
 
  1. public class Student implements Comparable {  
  2.     private int id;  
  3.     private int age;  
  4.     private String name;  
  5.     public Student(int id){  
  6.         this.id=id;  
  7.     }  
  8.     public int getId() {  
  9.         return id;  
  10.     }  
  11.   
  12.     public void setId(int id) {  
  13.         this.id = id;  
  14.     }  
  15.   
  16.     public int getAge() {  
  17.         return age;  
  18.     }  
  19.   
  20.     public void setAge(int age) {  
  21.         this.age = age;  
  22.     }  
  23.   
  24.     public String getName() {  
  25.         return name;  
  26.     }  
  27.   
  28.     public void setName(String name) {  
  29.         this.name = name;  
  30.     }  
  31.   
  32.       
  33.       
  34.     public static void main(String args[]){  
  35.         List<Student> list=new ArrayList<Student>();  
  36.         for(int i=1000;i>0;i--){  
  37.             list.add(new Student(i));  
  38.         }  
  39.           
  40.         Collections.sort(list);  
  41.         for(Student s: list){  
  42.             System.out.println(s.getId());  
  43.         }  
  44.     }  
  45.   
  46.     public int compareTo(Object o) {  
  47.         if(o instanceof Student){  
  48.             Student s=(Student)o;  
  49.             if(this.id>s.id){  
  50.                 return 1;  
  51.             }  
  52.             else{  
  53.                 return 0;  
  54.             }  
  55.         }  
  56.         return -1;  
  57.     }  
  58.   
  59. }  

2.利用Collections.sort(Object o,Comparator c)

[html] view plaincopy
 
  1. public class JiaMenuComparator implements Comparator{  
  2.   
  3.     public int compare(Object o1, Object o2) {  
  4.         if(null!=o1&&null!=o2)  
  5.         {  
  6.             JiaMenu menu1=(JiaMenu)o1;  
  7.             JiaMenu menu2=(JiaMenu)o2;  
  8.             if(menu1.getId()<menu2.getId()){  
  9.                 return 1;  
  10.             }else {  
  11.                 return 0;  
  12.             }  
  13.         }  
  14.         return 0;  
  15.     }  
  16.       
  17. }  

Collections.sort(List list,Comparator c)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics