1、List排序
List<Integer> intList = Arrays.asList(2, 3, 1);
System.out.println("正常sort:"+intList);//正常sort:[2, 3, 1]
Collections.sort(intList);//排序,默认正序
System.out.println("正序sort:"+intList);//正序sort:[1, 2, 3]
Collections.sort(intList,new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;// 返回值为int类型,大于0表示正序,小于0表示逆序
}
});
System.out.println("倒序sort:"+intList);//倒序sort:[3, 2, 1]
2、对象排序(第一种方法,重写sort方法)
Emp emp1 = new Emp(2,"Guan YunChang");
Emp emp2 = new Emp(3,"Zhang Fei");
Emp emp3 = new Emp(1,"Liu Bei");
List<Emp> empList = Arrays.asList(emp1,emp2,emp3);
System.out.println("正常sort:"+empList);
//正常sort:[empno: 2 ename: Guan YunChang, empno: 3 ename: Zhang Fei, empno: 1 ename: Liu Bei]
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());
}
});
System.out.println("正序sort:"+empList);
//正序sort:[empno: 1 ename: Liu Bei, empno: 2 ename: Guan YunChang, empno: 3 ename: Zhang Fei]
3、对象排序(第二种方法, Emp类继承Comparable接口并重写compareTo方法)
Emp2 emp1 = new Emp2(2,"Guan YunChang");
Emp2 emp2 = new Emp2(3,"Zhang Fei");
Emp2 emp3 = new Emp2(1,"Liu Bei");
List<Emp2> empList2 = Arrays.asList(emp1,emp2,emp3);
System.out.println("正常sort:"+empList2);
//正常sort:[empno: 2 ename: Guan YunChang, empno: 3 ename: Zhang Fei, empno: 1 ename: Liu Bei]
Collections.sort(empList2);
System.out.println("员工名字逆序sort:"+empList2);
//员工名字逆序sort:[empno: 3 ename: Zhang Fei, empno: 1 ename: Liu Bei, empno: 2 ename: Guan YunChang]