博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由bean组成的list根据某一字段排序
阅读量:6463 次
发布时间:2019-06-23

本文共 7001 字,大约阅读时间需要 23 分钟。

1 package com.chinfotech.common.util;  2 import java.util.ArrayList;  3 import java.util.Collections;  4 import java.util.Comparator;  5 import java.util.LinkedHashMap;  6 import java.util.List;  7 import java.util.Map;  8   9 import org.apache.commons.beanutils.BeanComparator; 10 import org.apache.commons.collections.ComparatorUtils; 11 import org.apache.commons.collections.comparators.ComparableComparator; 12 import org.apache.commons.collections.comparators.ComparatorChain; 13 import org.apache.commons.collections.comparators.NullComparator; 14  15 import com.chinfotech.scenicManage.bean.SaleTim; 16 /** 17  *  18  * @author gaomengqin 19  * 将bean封装成list后按照某一字段排序 20  * 21  */ 22  23 public class ListSort { 24  25     /** 26      * bean的某一个属性 27      * @param list:列表名称 28      * @param filedName:属性名称 29      * @param ascFlag:true;升序;false:降序 30      */ 31     @SuppressWarnings("unchecked") 32     public static void sort(List list, String filedName, boolean ascFlag) { 33  34         if (list.size() == 0 || filedName.equals("")) { 35             return; 36         } 37         Comparator
cmp = ComparableComparator.getInstance(); 38 // 判断升序还是降序 39 if (ascFlag) { 40 cmp = ComparatorUtils.nullLowComparator(cmp); 41 } else { 42 cmp = ComparatorUtils.reversedComparator(cmp); 43 44 } 45 Collections.sort(list, new BeanComparator(filedName, cmp)); 46 } 47 48 /** 49 * bean根据某几个属性排序 50 * @param beans 51 * @param sortParam 52 */ 53 @SuppressWarnings({ "rawtypes", "unchecked" }) 54 public static void sortExecute(List
beans, Map
sortParam) { 55 56 // 判断beans和排序规则是否有内容 57 if (beans.size() == 0 || sortParam.keySet().size() == 0) { 58 return; 59 } 60 61 // 判断beans和排序规则是否有内容 62 if (beans.isEmpty() || sortParam.isEmpty()) { 63 return; 64 } 65 ComparatorChain comparator = new ComparatorChain(); 66 boolean sortMethod = false; 67 for (String itemName : sortParam.keySet()) { 68 sortMethod = false; 69 if ("desc".equals(sortParam.get(itemName))) { 70 sortMethod = true; 71 } 72 comparator.addComparator(new BeanComparator(itemName, new NullComparator()), sortMethod); 73 } 74 Collections.sort(beans, comparator); 75 } 76 77 public static void main(String[] args) 78 { 79 // TODO Auto-generated method stub 80 81 //1、单纯的列表为例 82 ArrayList lst = new ArrayList(); 83 lst.add("00000000001"); 84 lst.add("00000000002"); 85 lst.add("00000000003"); 86 lst.add("00000000004"); 87 lst.add("00000000005"); 88 //单纯调用升序,无需改写方法 89 Collections.sort(lst); 90 System.out.println(lst.toString()); 91 //单纯调用降序,无需改写方法 92 Collections.reverse(lst); 93 System.out.println(lst.toString()); 94 //2、List
beans 为例 95 List
list = new ArrayList
(); 96 SaleTim sb; 97 sb = new SaleTim(); 98 sb.setCheck("1006"); 99 sb.setSale("3456");100 sb.setTime("18:00");101 list.add(sb);102 103 sb = new SaleTim();104 sb.setCheck("2378");105 sb.setSale("1265");106 sb.setTime("17:00");107 list.add(sb);108 109 sb = new SaleTim();110 sb.setCheck("1026");111 sb.setSale("2390");112 sb.setTime("19:30");113 list.add(sb);114 115 sb = new SaleTim();116 sb.setCheck("2900");117 sb.setSale("1089");118 sb.setTime("15:30");119 list.add(sb);120 121 122 sb = new SaleTim();123 sb.setCheck("2000");124 sb.setSale("3678");125 sb.setTime("16:30");126 list.add(sb);127 128 sb = new SaleTim();129 sb.setCheck("4500");130 sb.setSale("4000");131 sb.setTime("17:30");132 list.add(sb);133 System.out.println("***********原序*************");134 //原序135 for(SaleTim item : list){136 System.out.print(item.getCheck()+" ");137 System.out.print(item.getSale()+" ");138 System.out.println(item.getTime());139 }140 141 //降順142 System.out.println("***********check:降序*************");143 ListSort.sort(list, "check", false);144 for(SaleTim item : list){145 System.out.print(item.getCheck()+" ");146 System.out.print(item.getSale()+" ");147 System.out.println(item.getTime());148 }149 //昇順150 System.out.println("***********check:升序*************");151 ListSort.sort(list, "check", true);152 for(SaleTim item : list){153 System.out.print(item.getCheck()+" ");154 System.out.print(item.getSale()+" ");155 System.out.println(item.getTime());156 }157 //昇順158 System.out.println("***********time:升序*************");159 ListSort.sort(list, "time", true);160 for(SaleTim item : list){161 System.out.print(item.getCheck()+" ");162 System.out.print(item.getSale()+" ");163 System.out.println(item.getTime());164 }165 //降順166 System.out.println("***********time:降序*************");167 ListSort.sort(list, "time", false);168 for(SaleTim item : list){169 System.out.print(item.getCheck()+" ");170 System.out.print(item.getSale()+" ");171 System.out.println(item.getTime());172 }173 System.out.println("***********check:升序 time:降序*************");174 //3、LIST
beans 多个属性叠加排序175 Map
sortParam = new LinkedHashMap
();176 //check:昇順 time:降順177 sortParam.put("check", "asc");178 sortParam.put("time", "desc");179 ListSort.sortExecute(list, sortParam);180 181 for(SaleTim item : list){182 System.out.print(item.getCheck()+" ");183 System.out.print(item.getSale()+" ");184 System.out.println(item.getTime());185 }186 sortParam.clear();187 //check:昇順 time:昇順188 sortParam.put("check", "desc");189 sortParam.put("time", "asc");190 ListSort.sortExecute(list, sortParam);191 System.out.println("***********check:降順 time:昇順*************");192 for(SaleTim item : list){193 System.out.print(item.getCheck()+" ");194 System.out.print(item.getSale()+" ");195 System.out.println(item.getTime());196 }197 }198 }

 

转载于:https://www.cnblogs.com/moonlignt/p/7299658.html

你可能感兴趣的文章
梯度下降(Gradient descent)
查看>>
Windows平台分布式架构实践 - 负载均衡
查看>>
如何让LinearLayout也有类似Button的点击效果?
查看>>
JAVA读取文件方法大全
查看>>
寻找最小的k个数
查看>>
CSS3中的动画效果记录
查看>>
CI框架整合微信公共平台接口
查看>>
request.getScheme()的使用方法
查看>>
Android快速开发常用知识点系列目录
查看>>
Java ActiveMQ队列模式案例
查看>>
EJB2的配置
查看>>
最容易理解的对卷积(convolution)的解释
查看>>
《机器学习实战》知识点笔记目录
查看>>
Linux操作系统实时性分析
查看>>
mysql导出导入所有数据库
查看>>
完美解决NC502手工sql的查询引擎排序及合计问题
查看>>
PHP+MySQL代码部署在Linux(Ubuntu)上注意事项
查看>>
Tiny语言执行环境TM机源码
查看>>
PE文件之资源讲解
查看>>
windows 7/mac编译cocos2d-x-3.2*的android工程报错
查看>>