两个List合并,并且按某一个字段排序
1、业务代码
public IPage<TaskRecordListVO> selectRecordListPage(IPage<TaskRecordListVO> page) {//下发记录taskRecordListVOS = baseMapper.selectSendCompleteList();//申请记录taskRecordListVOS.addAll(baseMapper.selectTaskCompleteList());//合并Collections.reverse(taskRecordListVOS);//按时间排序ListSortUtil<TaskRecordListVO> listSortUtil = new ListSortUtil<TaskRecordListVO>();listSortUtil.sort(taskRecordListVOS, "createTime", "desc");return page.setRecords(taskRecordListVOS);
2、排序工具类
package org.springblade.police.util;import java.lang.reflect.Method;
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() {@Overridepublic 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;}});}}
两个List合并,并且按某一个字段排序相关推荐
- jQuery对Table一个字段排序
最近做一个机票的系统,要对航班信息进行排序,所以整理了一下,把排序的方法写下来. 首先table的结构大概如下 最后显示的样式为 首先在每一个tr上加一个自定义属性:data-sort-field-f ...
- mysql一个字段为空时使用另一个字段排序
表中有两个日期字段createDate,updateDate.其中updateDate可以为空,要求使用updateDate排序,如果updateDate为空则使用createDate排序,结果要顺序 ...
- list根据某一个字段排序返回
public static void main(String[] args) {List<RejectionRecord> list = new ArrayList<>();R ...
- python如何将两个list合并成字典_怎么把两个列表合并成字典 论Python怎样将两个list合并为一个字典...
Python怎样把2个列表合成为一个字典? 怎样把2个列表合成一个字典里了?如果你从一开始就选择低下头的话你就可以一直低着头.可是如果你一开始选择了昂着头的话你就永远不能低头了.荣辱说到底只是一瞬间的 ...
- mysql查询字段纯字母_解决MySQL之中一个字段中无法精准的查询多语言语言字母的问题...
解决MySQL之中一个字段中无法精准的查询多语言语言字母的问题 解决MySQL之中一个字段中无法精准的查询多语言语言字母的问题 目录 1.使用场景 2.实现过程及展示结果 2.1.修改字段排序规则为u ...
- Java合并两个int数组合并_Java中如何把两个数组合并为一个
在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题.但是如何才能把代码写得高效简洁,却还是值得思考的.这里介绍四种方法,请参考选用. 一.apache-commons 这是 ...
- ubuntu xfce下面两个终端合并为一个终端
我们现在想把两个终端合并为一个终端,以便于管理 方法如下: ①左侧终端新开一个tab,如下: ②经过上述操作原来的终端就也变成tab了 我们不理会新开的"空白tab",鼠标拖动ta ...
- python list合并_python基础===两个list合并成一个dict的方法
def Run(): list2 = [, , , , ]; list3 = ["a", "b", "c", "d",& ...
- Java实现把两个数组合并为一个的方法总结
本文实例讲述了Java实现把两个数组合并为一个的方法.分享给大家供大家参考,具体如下: 在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题.但是如何才能把代码写得高效简洁, ...
最新文章
- CMS:听我的,生产环境上要这样配置JVM参数
- 测试两个主机之间的连通性_UCloud 全链路大规模网络连通性检测系统详解
- python 字符串转字节数组
- Rails开发细节《七》ActiveRecord Associations关联
- python对象_查找Python对象具有的方法
- Xshell远程访问工具及epel-release包安装
- file.delete删除不了文件_巧用磁盘清理,彻底清除Windows系统垃圾文件
- 非华为电脑安装华为电脑管家步骤
- OC容器——图书馆 .h 文件
- nodejs中使用nodemon加载文件报错
- 总结淘宝客应该注意的佣金陷阱
- 多元函数偏导数连续、存在与可微的关系
- 智能(语音)对话系统架构研究
- 如何同时给多个视频加水印?
- android代码精华 各路大神写的代码精华,大家一起分享
- Netlogon特权提升漏洞
- 【mcuclub】称重-HX711
- 自动驾驶(四十七)---------超声波雷达简介
- 低通滤波器计算截止评率_技术货:滤波器带宽及对应RC的计算
- Nginx的部署与配置