List集合排序工具类
来源:互联网 发布:java中怎么调用方法 编辑:程序博客网 时间:2024/06/16 13:31
在项目中有时候我们需要对list里边的数据进行排序。我们一般常用的就是对model排序和map的排序。
package com.creditease.comp.information.util;import java.util.Collections;import java.util.Comparator;import java.util.Date;import java.util.List;import java.util.Map;import java.lang.reflect.Method;/*** @author wangdingfeng:* @ClassName ListSortUtil* @Description: List 按照指定字段排序* @date 创建时间:2017年6月30日 下午3:11:41* 类说明*/public class ListSortUtil<T> {/** * @param targetList 目标排序List * @param sortField 排序字段(实体类属性名) * @param sortMode 排序方式(asc or desc) */@SuppressWarnings({ "unchecked", "rawtypes" })public void sortModel(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;}});}/** * Map排序 按照时间字段排序 * @param targetList * @param sortField * @param sortMode 排序方式(asc or desc) */public void sortMap(List<Map<String,Object>> targetList,final String sortField,final String sortMode){ Collections.sort(targetList, new Comparator<Map<String,Object>>() {@Overridepublic int compare(Map<String, Object> o1, Map<String, Object> o2) { //进行判断int retVal = 0;try {if(sortMode != null && "desc".equals(sortMode)){retVal= ((String)o2.get(sortField).toString()).compareTo((String)o1.get(sortField).toString());}else{retVal= ((String)o1.get(sortField).toString()).compareTo((String)o2.get(sortField).toString());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return retVal;}});}}
阅读全文
0 0
- List集合排序工具类
- 集合工具类和排序
- List集合按照对象中某个属性排序通用工具类(按对象中某属性排序)
- List集合内排序
- List集合排序
- list 集合对象 排序
- list集合排序
- List集合的排序
- 针对list集合排序
- List集合排序
- List集合排序
- list集合进行排序
- List集合数据排序
- List集合排序
- list集合排序问题
- List集合String排序
- List集合排序
- List集合排序
- java List的<>中 方法参数是父类对象的list。传入子类对象时的处理
- 软件设计原则概述
- 剑指offer-数字在排序数组中出现的次数
- 图形之可见面判别算法
- 【剑指Offer】面试题60:把二叉树打印成多行
- List集合排序工具类
- SQLite线程模式探讨
- java的核心入门到放弃————面向对象小结
- C# 字符之间的转换
- spring 解读之 DI 、AOP
- 001初识java
- Scrapy手动增加Add Cookie和关掉重复过滤器dupfilters
- PHP 从数据库取出的数据转换成JOSN数据方法
- 网络基础 — TCP四大定时器