您的位置:首页 > 编程语言 > Java开发

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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: