当前位置:首页 > 开发 > Web前端 > 前端 > 正文

java之List排序

发表于: 2015-07-19   作者:shiguanghui   来源:转载   浏览:
摘要:    在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。   你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递

   在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 plain copy
 
  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 plain copy
 
  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)

java之List排序

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
有时需要对List排序,这时可以利用Collections的sort()方法来排序,不用自己再去排序。 package myT
有时需要对List排序,这时可以利用Collections的sort()方法来排序,不用自己再去排序。 package myT
工作也一年了,一直很喜欢编程。也看了不少的书,但是总感觉对java的认识不够,自己的水平也有限,20
程序想删除一个A对象,List将会调用该A对象的equals方法依次与结婚元素进行比较,如果该equals方法
1.什么是Lsit集合? List集合是一种元素有序的,可重复的集合,集合中每个元素都有自己的元素索引。
Set 集合是无序不可以重复的的 List 集合是有序可以重复的 Map 是键-值对:Map<key , value>
集合类List存放的数据,默认是按照放入时的顺序存放的,比如依次放入A、B、C,则取得时候,则也是A、
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全
简单选择排序 (1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换; 然后在
冒泡排序 (1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号