您的位置:首页 > 其它

排序工具类

2016-07-28 11:41 369 查看
如果是多个字段,按添加顺序优先级排序

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

import org.apache.commons.collections.ComparatorUtils;

import org.apache.commons.collections.comparators.ComparableComparator;

import org.apache.commons.collections.comparators.ComparatorChain;

/**

*

* @ClassName: BeanSortUtils

* @Description: bean的list集合排序通用类

* @author ysq

* @date 2016年5月20日 上午10:39:56

*

*/

public class BeanSortUtils{

/**

*

* @param dataList 排序数据

* @param sortFieldsList 要排序的字段集合

* @param sortTypeList 排序字段是否逆序

* @return 排序后的list集合

*/

public static List<?> sortBeanList(List<?> dataList,List<String> sortFieldsList,List<Boolean> sortTypeList){

Comparator comparator=ComparableComparator.getInstance();

comparator=ComparatorUtils.nullLowComparator(comparator);//允许null

comparator=ComparatorUtils.reversedComparator(comparator);

List<Object> comparatorList=new ArrayList<Object>();

for(int i=0;i<sortFieldsList.size();i++){

String sortField=sortFieldsList.get(i);

if(sortTypeList.get(i)==true){

comparatorList.add(new org.apache.commons.beanutils.BeanComparator(sortField,comparator));

}else{

comparatorList.add(new org.apache.commons.beanutils.BeanComparator(sortField));

}

}

ComparatorChain multiSort=new ComparatorChain(comparatorList);

Collections.sort(dataList,multiSort);

return dataList;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排序 工具类