java多条件优先级排序 --------- Comparator
来源:互联网 发布:linux防火墙ip地址配置 编辑:程序博客网 时间:2024/06/06 21:39
- 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;
- }
- }
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);
- java多条件优先级排序 --------- Comparator
- java多条件优先级排序 --------- Comparator
- java多条件优先级排序 --- Comparator
- Java之——利用Comparator接口对多个排序条件进行处理
- Java之——利用Comparator接口对多个排序条件进行处理
- 我的Java开发学习之旅------>Java利用Comparator接口对多个排序条件进行处理
- Java Comparator 排序
- Java Comparator排序
- java实现comparator排序
- Java中的排序 Comparator,Comparable
- java comparable 和 comparator 排序
- JAVA排序(二) Comparator接口
- Java:对象排序:Comparator&Comparable
- JAVA Comparator 接口排序用法
- Java Comparable Comparator 排序应用
- Java 排序Comparator的实践
- [java 排序] Comparable 和 Comparator
- java排序Comparator基本用法
- 单例延迟实例化
- Unity Application Block 学习笔记 之 装饰模式应用
- 数组排序中的(选择,冒泡)
- 【CF 应用开发大赛】JEECG 基于代码生成器J2EE智能开发框架
- Java编译原理
- java多条件优先级排序 --------- Comparator
- Java和.NET开发过程中的一些不同
- java多条件优先级排序 --------- Comparator
- cobertura 代码覆盖率配置
- 支持并发的结果缓存
- Centos php 升级到5.3
- Maya创建与应用贴图
- 【转】tomcat 内存
- 指针与数组关联导致的一些现象