首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java多条件优先级排序 - Comparator

2013-01-25 
java多条件优先级排序 --------- Comparatorpackage comimport java.util.ArrayListimport java.util.Co

java多条件优先级排序 --------- Comparator
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>() {@Overridepublic 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>() {@Overridepublic int compare(Student o1, Student o2) {return o1.age > o2.age ? 1 : -1;}};private Comparator<Student> comparePointDESC = new Comparator<ComparatorDemo.Student>() {@Overridepublic 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);

热点排行