java中List按照指定字段排序工具类
来源:互联网 发布:windows10装mac虚拟机 编辑:程序博客网 时间:2024/06/05 00:38
package com.yumi.mibao.util;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;/** * List按照指定字段排序工具类 * * @param <T> */public class ListSortUtil<T> {/** * @param targetList 目标排序List * @param sortField 排序字段(实体类属性名) * @param sortMode 排序方式(asc or desc) */@SuppressWarnings({ "unchecked", "rawtypes" })public void sort(List<T> targetList, final String sortField, final String sortMode) {Collections.sort(targetList, new Comparator() {public int compare(Object obj1, Object obj2) { int retVal = 0;try {//首字母转大写String newStr=sortField.substring(0, 1).toUpperCase()+sortField.replaceFirst("\\w",""); String methodStr="get"+newStr;Method method1 = ((T)obj1).getClass().getMethod(methodStr, null);Method method2 = ((T)obj2).getClass().getMethod(methodStr, null);if (sortMode != null && "desc".equals(sortMode)) {retVal = method2.invoke(((T) obj2), null).toString().compareTo(method1.invoke(((T) obj1), null).toString()); // 倒序} else {retVal = method1.invoke(((T) obj1), null).toString().compareTo(method2.invoke(((T) obj2), null).toString()); // 正序}} catch (Exception e) {throw new RuntimeException();}return retVal;}});}}
将你需要排序的对象代替T对象即可,如:
CommonUtil<MibaoKeywordsTagInfo> cu = new CommonUtil();//执行具体查询List<MibaoKeywordsTagInfo> list = query.list();//根据指定排序字段重新排序cu.doSort(list, "keywordsTagOrder", "asc");
0 0
- java中List按照指定字段排序工具类
- java中List按照指定字段排序工具类
- java中List按照指定字段排序工具类
- java中List按照指定字段排序工具类
- java中的list按照指定字段排序
- Java中List根据指定字段排序工具类
- List按照指定字段排序
- list内对象按照指定字段排序
- Java中集合List按照集合内实体类元素的指定字段排序方法
- list集合中按照指定属性排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- PHP数组按照指定字段排序
- List集合按照日期字段进行排序
- List按照多个字段进行排序
- 浮动布局实现瀑布流
- 无参考图像的质量评价
- Lwip pbuf分析
- SSM(springmvc+spring+mybatis)整合过程
- 数据结构实验之排序三:bucket sort
- java中List按照指定字段排序工具类
- 数据结构和算法系列之 五大查找之哈希查找
- 优秀工程师必备的十大能力!
- MFC--窗口Z轴
- Python爬虫练习
- 5-22 堆栈模拟队列 (25分)
- main()函数形参是怎么回事?
- Tomcat源码导入Idea2016.2.3
- Exynos 4412 Cortex-A9嵌入式Linux驱动开发学习笔记-第一期