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]