Collections.sort()

package com.sheting.sort.demo1;

/**
 * @Author SheTing
 * @Time 2018/3/23 10:15
 */
public class Emp implements Comparable<Emp>{

    private int empno;
    private String ename;

    public int getEmpno() {
        return empno;
    }

    public void setEmpno(int empno) {
        this.empno = empno;
    }

    public String getEname() {
        return ename;
    }

    public void setEname(String ename) {
        this.ename = ename;
    }

    public Emp(int empno, String ename) {
        super();
        this.empno = empno;
        this.ename = ename;
    }

    @Override
    public String toString() {
        return  String.format("empno:%s\tename:%s" ,empno , ename);

    }

    @Override
    public int compareTo(Emp emp) {
        return emp.getEname().compareTo(this.getEname());
    }
}
package com.sheting.sort.demo1;

import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * @Author SheTing
 * @Time 2018/3/23 10:16
 */
public class TestSort {


    public static void main(String[] args) {

        List intList = Arrays.asList(3, 2, 1);
        List strList = Arrays.asList("b", "c", "a");

        Collections.sort(intList);
        System.out.println(intList);

        Collections.sort(strList);
        System.out.println(strList);

        Emp emp1 = new Emp(200, "Guan YunChang");
        Emp emp2 = new Emp(300, "Zhang Fei");
        Emp emp3 = new Emp(100, "Liu Bei");
        List<Emp> empList = Arrays.asList(emp1, emp2, emp3);

        Collections.sort(empList, new Comparator<Emp>() {

            @Override
            public int compare(Emp o1, Emp o2) {
                /*按员工编号正序排序*/
                return o1.getEmpno()-o2.getEmpno();
                /*按员工编号逆序排序*/
                //return o2.getEmpno()-o1.getEmpno();
                /*按员工姓名正序排序*/
                //return o1.getEname().compareTo(o2.getEname());
                /*按员工姓名逆序排序*/
                //return o2.getEname().compareTo(o1.getEname());
            }
        });

        //JDK8
        Collections.sort(empList, (o1, o2) ->  o1.getEmpno()-o2.getEmpno());
        Collections.sort(empList, Comparator.comparingInt(Emp::getEmpno));
        System.out.println(empList.toString());


        //注意: Emp需要实现Comparable接口和实现方法compareTo
        Collections.sort(empList);
        System.out.println(empList.toString());

    }
}

运行结果:

[1, 2, 3]
[a, b, c]
[empno:100  ename:Liu Bei, empno:200    ename:Guan YunChang, empno:300  ename:Zhang Fei]
[empno:300  ename:Zhang Fei, empno:100  ename:Liu Bei, empno:200    ename:Guan YunChang]

猜你喜欢

转载自blog.csdn.net/tb9125256/article/details/81230269