package com;

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

public class ComparatorDemo {
public List<Student> mList;
public List<Comparator<Student>> mCmpList = new ArrayList<Comparator<Student>>();
public ComparatorDemo(List<Student> list){
mList = list;
mCmpList.add(compareAgeASC);
mCmpList.add(comparePointDESC);
sort(mList, mCmpList);
}
public void sort(List<Student> list, final List<Comparator<Student>> comList) {
if (comList == null)
return;
Comparator<Student> cmp = new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
for (Comparator<Student> comparator : comList) {
if (comparator.compare(o1, o2) > 0) {
return 1;
} else if (comparator.compare(o1, o2) < 0) {
return -1;
}
}
return 0;
}
};
Collections.sort(list, cmp);
}

private Comparator<Student> compareAgeASC = new Comparator<ComparatorDemo.Student>() {

@Override
public int compare(Student o1, Student o2) {
return o1.age > o2.age ? 1 : -1;
}
};

private Comparator<Student> comparePointDESC = new Comparator<ComparatorDemo.Student>() {

@Override
public int compare(Student o1, Student o2) {
return o1.point < o2.point ? 1 : -1;
}
};

/**
* @author 80059130
*
*/
class Student {
public int age;
public String name;
public int point;
}
}

1、Comparator

Collections.sort(List<T> list, Comparator<? super T> c) ;

  2、T实现了Comparable 接口

Collections.sort(List<T> list);