List排序大体上分为如下两类:
1、List<Integer> 对Integer、String等类型的List排序
2、List<Object> 对自定义对象的排序
本文代码例子只进行简单的介绍,仅起到抛砖引玉作用,读者可以自行开发哈。
1、对List<Integer>进行排序
代码如下:
1 List<Integer> l = new ArrayList<Integer>(); 2 l.add(3); 3 l.add(1); 4 l.add(2); 5 l.add(9); 6 l.add(7); 7 8 Collections.sort(l);//默认排序(从小到大) 9 for(int i : l){ 10 System.out.println(i); 11 } 12 13 Collections.reverse(l);//倒叙(从大到小) 14 for(int i : l){ 15 System.out.println(i); 16 }
代码运行后结果为 12379 97321 先是正序输出(默认从小到大) 后是倒叙输出(从大到小)。
2、对List<Object>进行排序
对自定义的对象进行排序,首先对象需要实现Comparable接口,然后重写compareTo方法。代码如下:
实体对象:
1 /* 2 * 学生实体 3 */ 4 class Student implements Comparable<Student>{ 5 public Integer Age = 0; 6 public String Name = ""; 7 8 public Integer getAge() { 9 return Age; 10 } 11 public void setAge(int age) { 12 Age = age; 13 } 14 15 public String getName() { 16 return Name; 17 } 18 public void setName(String name) { 19 Name = name; 20 } 21 22 public Student(int age,String name){ 23 this.Age = age; 24 this.Name = name; 25 } 26 27 @Override 28 public int compareTo(Student s) { 29 //自定义比较方法,如果认为此实体本身大则返回1,否则返回-1 30 if(this.Age >= s.getAge()){ 31 return 1; 32 } 33 return -1; 34 } 35 }
排序代码实例:可以用list.sort()排序,也可以用Collections.sort()排序,结果都是一样的
1 List<Student> list = new ArrayList<Student>(); 2 3 list.add(new Student(1,"zhangsan")); 4 list.add(new Student(6,"zhangsan")); 5 list.add(new Student(2,"zhangsan")); 6 list.add(new Student(9,"zhangsan")); 7 list.add(new Student(1,"zhangsan")); 8 9 list.sort(Comparator.naturalOrder());//正序比较 10 //Collections.sort(list);//正序比较 11 12 for(Student i : list){ 13 System.out.println(i.getAge()); 14 }
代码只写了正序排序,结果如下:11269。
总体上排序简单的实现就是这样子,有很多不足,希望各位大大指正。^_^!!
时间: 2024-10-20 08:33:24