zoukankan      html  css  js  c++  java
  • Java List排序

    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。

    总体上排序简单的实现就是这样子,有很多不足,希望各位大大指正。^_^!!

  • 相关阅读:
    fn project 试用之后的几个问题的解答
    fn project 扩展
    fn project 生产环境使用
    fn project 对象模型
    fn project AWS Lambda 格式 functions
    fn project 打包Function
    fn project Function files 说明
    fn project hot functions 说明
    fn project k8s 集成
    fn project 私有镜像发布
  • 原文地址:https://www.cnblogs.com/yinq/p/6926581.html
Copyright © 2011-2022 走看看