java 内部类实现排序 Comparator
2017-07-19 10:16
232 查看
public class A{ public xxxx fun(){ //业务逻辑 //xxxxxxxxxxxxxxxxxxx //排序 Collections.sort(myList, new MyComparator(configValueList)); } /** *内部类实现排序 *configValueList 排序规则 *根据DtoList中的某一个字段,按照configValueList配置的规则来排序 *如configValueList ["a","b","c"] *myList myList.get[0].getVal() = b,myList.get[1].getVal() = a,myList.get[2].getVal() = c *那么排序后 myList.get[0].getVal() = a,myList.get[1].getVal() = b,myList.get[2].getVal() = c */ class MyComparator implements Comparator<Dto> { private List<String> configValueList; public MyComparator(List<String> configValueList) { this.configValueList = configValueList; } @Override public int compare(Dto dto1, Dto dto2) { if(CollectionUtils.isEmpty(configValueList) || dto1 == null || dto2 == null){ return 0; } String val1 = dto1.getVal(); String val2 = dto2.getVal(); if(StringUtils.isBlank(val1) || StringUtils.isBlank(val2)){ return 0; } int sort1 = configValueList.indexOf(val1); int sort2 = configValueList.indexOf(val2); if(-1 == sort1 || -1 == sort2){ return 0; } return sort1 - sort2; } } }
相关文章推荐
- java中匿名内部类的两种实现方式 (引用)
- JAVA AWT 事件处理及内部类的实现
- JAVA匿名内部类实现工厂化生产
- JAVA匿名内部类实现工厂化生产
- JAVA中对同一问题分别使用内部类与匿名内部类实现
- 链表的Java实现(使用内部类作为指针的引用)
- Java 学习笔记 (3) -抽象类 abstract 接口 interface 内部类 inner class 继承 extends 实现 implements 包 package
- 用内部类实现java多重实现中的方法同名问题
- Java的内部类的创建和实现演示
- c#中类似JAVA中匿名内部类实现
- 转.java中匿名内部类的两种实现方式
- Java通过内部类实现回调功能
- Java通过内部类实现回调功能
- JAVA中对同一问题分别使用内部类与匿名内部类实现
- JAVA学习4——内部类实现接口 未完成
- Java中用匿名内部类实现实例化抽象类
- java中用内部类实现监听接口例程
- 用内部类实现java多重实现中的方法同名问题
- java在内部类中实现接口
- java学习 接口派生 内部类实现接口 暑假第七天