JAVA代码实现按列表中元素的时间字段排序 左联表后缺失数据 多字段进行排序

 

@Data
@ApiModel(value = "EstateListVo", description = "小区列表")
public class EstateListVo implements Serializable {private static final long serialVersionUID = 4969589185044044369L;@ApiModelProperty("小区ID")private Long estateId;@ApiModelProperty("小区编号")private String estateNo;@ApiModelProperty("小区名称")private String estateName;@ApiModelProperty("苑ID")private Long courtId;@ApiModelProperty("苑名称")private String courtName;@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;EstateListVo that = (EstateListVo) o;return Objects.equals(estateId, that.estateId) &&Objects.equals(courtId, that.courtId);}@Overridepublic int hashCode() {return Objects.hash(estateId, courtId);}
}
 
@Overridepublic List<EstateListVo> getEstateCourtList( String communityCode,  String  estateName)  {List<Long> estateIdList = new ArrayList<>();List<EstateListVo> estateCourtList = baseMapper.getEstateCourtList(communityCode, estateName, estateIdList);Set<EstateListVo> estateCourtEmptySet = new HashSet<>();for( EstateListVo tempEstate : estateCourtList ){estateCourtEmptySet.add(tempEstate);//加一个空格苑LambdaQueryWrapper<House> wrapper = new LambdaQueryWrapper<>();wrapper.eq(House::getEstateId, tempEstate.getEstateId());wrapper.isNull(House::getCourtId);List<House> houseList = houseMapper.selectList(wrapper);if(CollectionUtils.isNotEmpty(houseList)){EstateListVo estateListVo = new EstateListVo();estateListVo.setCourtId(null);estateListVo.setCourtName(null);estateListVo.setEstateId((tempEstate.getEstateId()));estateListVo.setEstateName(tempEstate.getEstateName());estateListVo.setEstateNo(tempEstate.getEstateNo());estateCourtEmptySet.add(estateListVo);}}//结果List<EstateListVo> resultList = new ArrayList<>();for( EstateListVo tempEstate : estateCourtEmptySet ){String courtName = tempEstate.getCourtName();if(StringUtils.isBlank(courtName)){tempEstate.setCourtName("");}resultList.add(tempEstate);}//rankList.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序resultList.sort(Comparator.comparing(EstateListVo::getEstateName).thenComparing(EstateListVo::getCourtName));;return resultList;}
@Data
@AllArgsConstructor
public class User1 {private String name;private String birthday;}
public class SortUser {public static void main(String[] args) {List<User1> list = new ArrayList<>();
//    list.add(new User1("张三", "1987-05-23 12:34:07"));
//    list.add(new User1("李四", "1977-05-23 05:04:07"));
//    list.add(new User1("王五", "1987-05-23 09:34:07"));list.add(new User1("王五1", "2020-03-01"));list.add(new User1("王五2", "2020-12-31"));list.add(new User1("王五3", "2020-10-23"));list.add(new User1("王五4", "2020-05-01"));list.add(new User1("王五5", "2020-10-31"));//(1)顺序排列list.sort(Comparator.comparing(User1::getBirthday));//(2)输出listSystem.out.println("排序后1:"+list);//(3)倒序排列Collections.reverse(list);//(4)输出listSystem.out.println("排序后2:"+list);}
}

工作中遇到一个问题,调用第三方接口返回的数据没有按时间倒序排列,测试说要加,然后在网上找到一个解决办法,这里记录一下

需求:

  • 如下图列表,按生日进行倒序排列
    ​编辑

用户类

@Data

@AllArgsConstructor

public class User {

private String name;

private String birthday;

}

测试类

 

@SpringBootTest

@Slf4j

public class TestSort {

private List<User> list = new ArrayList<>();

@BeforeEach

void setUp() {

list.add(new User("张三", "1987-05-23 12:34:07"));

list.add(new User("李四", "1977-05-23 05:04:07"));

list.add(new User("王五", "1987-05-23 09:34:07"));

}

@Test

@DisplayName("测试排序")

void test() {

// (1)顺序排列

list.sort(Comparator.comparing(User::getBirthday));

// (2)倒序排列

Collections.reverse(list); //

(3)输出list

log.info("排序后:"+list);

}

}

测试结果

​编辑

参考资料

Java实现 根据list列表元素的时间字段进行排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core下使用gRpc公开服务(SSL/TLS)

一、前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息&#xff0c;而随之而来的就是一波关于.NET Core下如何使用的教程&#xff0c;但是在这众多的教程中基本都是泛泛而谈&#xff0c;难以实际在实际环境中使用&#xff0c;而该篇教程以gRpc为主&#xff0c;但是使用…

HashMap jdk1.7源码阅读与解析

转载自 HashMap源码阅读与解析 一、导入语 HashMap是我们最常见也是最长使用的数据结构之一&#xff0c;它的功能强大、用处广泛。而且也是面试常见的考查知识点。常见问题可能有HashMap存储结构是什么样的&#xff1f;HashMap如何放入键值对、如何获取键值对应的值以及如何…

如何兼容html在不同分辨力的问题,现代教育技术练习题

2009年秋期《现代教育技术》理论基础知识综合练习题一、单项选择题1、教育技术是关于学习过程和学习资源的()五个领域的理论与实践。A&#xff0e;开发、应用、购置、建构、评价B&#xff0e;组织、设计、实验、管理、辅导C&#xff0e;开发、应用、管理、设计、评价D&#xff…

2013蓝桥杯-B-省赛-六-三部排序

六、三部排序 package com.markerhub;public class TEST { // 负数都靠左端&#xff0c;正数都靠右端&#xff0c;0在中部static void sort(int[] x) //解题技巧&#xff1a;边猜测、边验证、逐步推理逻辑//极限思维 全是0 --> p //填空题&#xff1a;一般就一行代码…

java实现加密电话号码,有具体的加密流程注释

闲着没事做&#xff0c;正好有一位哥们让帮他看个写个逻辑题&#xff0c;我就顺便写了下&#xff01; 此题主要是加密一个数字类型的电话号码&#xff0c;具体加密流程如下&#xff1a; * 将一串数字进行加密 * 加密规则&#xff1a;先把这串数字降序&#xff0c;然后将每个…

.NET项目版本号的小随笔

【题外话】 一直以来都对.NET项目中的几个版本号&#xff08;AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersion&#xff09;以及版本号中的Revision和Build有疑问&#xff0c;今儿抽了点时间看了几篇文章&#xff0c;整理一下与大家一起分享下。 【一、Ass…

Java实现最电话号码的简单加密源码

废话已经在 java实现加密电话号码&#xff0c;有具体的加密流程注释 这里面说了&#xff0c;这篇文章我就直接上代码了&#xff01; 请看&#xff1a; /** * Title: TestMain.java * Package org.test * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A1…

进程和线程关系及区别

转载自 进程和线程关系及区别 1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只…

铜仁学院计算机报名,铜仁学院2012年3月全国计算机等级考试报名时间通知

2012年3月全国计算机等级考试有关事宜的通知各系(部)、现代教育技术中心、计财处&#xff1a;2012年3月全国计算机等级考试将于2012年3月24日&#xff0d;25日举行&#xff0c;按照教育部考试中心和贵州省考试中心的要求&#xff0c;我院计算机考试报名准备工作从2011年12月1日…

2013蓝桥杯-B-省赛-七、错误票据

七、错误票据 package com.markerhub;import java.util.Scanner; import java.util.ArrayList; import java.util.Collections;public class TEST { //解题思路&#xff1a;枚举public static void main(String[] args) {Scanner sc new Scanner(System.in);int N sc.nextI…

Windows.etc\hosts文件

Windows.etc\hosts文件 ZC&#xff1a;就是将 后面的项 重定位到 前面的项 1、目录&#xff1a;"C:\Windows\System32\drivers\etc" 文件&#xff1a;"C:\Windows\System32\drivers\etc\hosts" 2、c__Windows_System32_drivers_etc_hosts的作用 - Sharpe…

Java多线程:实现方式Thread与Runnable

转载自 Java多线程:实现方式 在Java中, 多线程的实现有两种方式&#xff1a;扩展java.lang.Thread类实现java.lang.Runnable接口 方法1 /** * Description: 继承Thread类, 实现多线程. * author snoopy * blog http://blog.csdn.net/huang_xw */ package basic.a_start; …

java实现邮件发送准备工作(前期配置)

本文主要用的邮件客户端是&#xff1a;office 2007的outlook,服务器是apache-james-2.3.2&#xff0c;首先我们来配置一下这个james服务器: 1.将james服务器解压到硬盘目录下&#xff0c;注意目录不能有中文&#xff0c;如e:盘下 2.修改apps/james/sar-inf目录下的confi…

计算机在轻化工程中的应用,计算机在轻化工程专业中的应用-中国大学mooc-题库零氪...

第一章 试验设计与统计学基础第一章单元测验1、1. 统计学是一门收集、整理、()和解释数据的科学。A、A、扩大B、B、传递C、C、增加D、D、分析2、3. ()最早提出试验设计的理论。A、A、Francis GaltonB、B、Karl PearsonC、C、Rinald FisherD、D、William Gosset3、4. 用来描述样…

JwtFilter---解决其中的跨域问题

JwtFilter 第五步&#xff1a;定义jwt的过滤器JwtFilter。 这个过滤器是我们的重点&#xff0c;这里我们继承的是Shiro内置的AuthenticatingFilter&#xff0c;一个可以内置了可以自动登录方法的的过滤器&#xff0c;有些同学继承BasicHttpAuthenticationFilter也是可以的。 …

win10关闭“Windows安全中心”功能的两种方法

win10系统怎么将windows安全中心关闭&#xff1f; 听语音 原创|浏览&#xff1a;10407|更新&#xff1a;2020-03-24 10:541 2 3 4 5 6 7 分步阅读 一些软件需要将Windows安全中心关闭。 方法/步骤 1 首先打开开始菜单。 2 在开始菜单中点击设置按钮。 3 在设置界…

ASP.NET Core 中间件Diagnostics使用

ASP.NET Core 中间件(Middleware)Diagnostics使用。对于中间件的介绍可以查看之前的文章ASP.NET Core 开发-中间件(Middleware)。 Diagnostics中间件&#xff0c;主要功能是用于报告和处理ASP.NET Core中的异常和错误信息&#xff0c;以及诊断Entity Framework核心迁移错误。 其…

使用java底层实现邮件的发送(含测试,源码)

直接上代码&#xff1a;3个类&#xff0c;两个主要的类&#xff0c;一个测试类&#xff1a; 主类&#xff08;Mail&#xff09;&#xff1a; /** * Title: Mail.java * Package org.service.impl * Description: TODO该方法的主要作用&#xff1a; * author A18ccms A18ccms_…

Java多线程:线程状态

转载自 Java多线程:线程状态 一. 线程状态类型 1. 新建状态&#xff08;New&#xff09;&#xff1a;新创建了一个线程对象。 2. 就绪状态&#xff08;Runnable&#xff09;&#xff1a;线程对象创建后&#xff0c;其他线程调用了该对象的start()方法。该状态的线程位于可运行…

配置计算机系统doc,[计算机系统配置实用程序.doc

[计算机系统配置实用程序初学者在使用电脑过程中&#xff0c;肯定会碰到各种各样的问题&#xff1a;如怎么管理电脑的自启动程序、如何查看加载的系统服务、怎样从安装光盘提取丢失的系统文件等。为了解决类似问题&#xff0c;微软在系统中提供了一个实用工具——系统配置实用程…