论list内部数据排序

来源:互联网 发布:手机淘宝查看订单编号 编辑:程序博客网 时间:2024/06/06 20:59

在实际开发过程中,一个list一开始一般是无序的,而在实际开发中我们对List的数据进行排序展示,Java中提供对集合中的元素进行操作的工作类Collections,其中的Sort方法就是对集合的数据进行排序的方法,下面直接使用该方法.

    /**    * 学生类    */    public class Student {    public int age;    public String name;    public String address;    public Student(int age,String name,String address){        this.age = age;        this.name = name;        this.address = address;    }    @Override    public String toString() {        return "Student [age=" + age + ", name=" + name + ", address="                + address + "]";    }}  //data为student的list,下面对学生们年龄有小到大的排序  public class Main {    public static void main(String args[]){        List<Student> data = new ArrayList();        Student student1 = new Student(10,"张三","广州");        Student student2 = new Student(40,"李四","深圳");        Student student3 = new Student(30,"刘六","南昌");        Student student4 = new Student(20,"吴王","厦门");        data.add(student1);        data.add(student2);        data.add(student3);        data.add(student4);        Collections.sort(data,new Comparator<Student>(){            //重点解析方法的操作方法:            //compare进行排序的方法实际上就是两个for循环进行嵌套,            //它的原理实际上是以下代码            //      for(int i = 1;i < data.size() ; i ++){            //          for(int j = 0 ; j < i ; j ++){            //              //内部逻辑处理            //          }            public int compare(Student o1, Student o2) {            //参数:o1是当前正在与别的比较的数据(后面的数据),o2是循环的数据(前面的数据),也就是说在原始数据中o1比o2的index值大            //返回值:int,大于0的时候,保持顺序不变;小于0的时候,调转顺序.                System.out.println(o1.toString() + o2.toString());                if(o1.age > o2.age){                    return 1;                }else if(o1.age < o2.age){                    return -1;                }                return 0;            }        });        System.out.println();        System.out.println();        System.out.println();        for(Student student : data){            System.out.println(student.toString());        }    }}
原创粉丝点击