首页 > 编程语言 >Java中List集合中多个字段如何排序

Java中List集合中多个字段如何排序

时间:2024-06-11 19:32:19浏览次数:16  
标签:Java People age List height new 排序 降序

开源项目SDK:https://github.com/mingyang66/spring-parent
个人文档:https://mingyang66.github.io/raccoon-docs/#/

一、首先定义一个三个属性的People类
public class People {
    private String name;
    private int age;
    private int height;

    public People(String name, int age, int height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }
    }
二、定义一个List集合列表
        List<People> list = List.of(
                new People("Emily", 18, 20),
                new People("田晓霞", 28, 165),
                new People("lili", 19, 28),
                new People("lili", 19, 21),
                new People("Tom", 20, 22)
        );
三、列表先按照age升序再按照height升序排序
List<People> data = list.stream().sorted(Comparator.comparing(People::getAge).thenComparing(People::getHeight)).toList();

sorted方法默认是升序

四、列表先按照age降序再按照height降序排列
List<People> data = list.stream().sorted(Comparator.comparing(People::getAge).thenComparing(People::getHeight).reversed()).toList();

排序后添加reversed方法自动反转排序结果,即按先按照age降序,再按照height降序排列。

标签:Java,People,age,List,height,new,排序,降序
From: https://blog.csdn.net/yaomingyang/article/details/139606495

相关文章

  • 【数据库】mybatis生成java代码之AutoGenerator配置
    哈喽,大家好,我是木头左,AI改变生活!本文将详细解释MyBatis生成Java代码的过程,包括全局配置、数据源配置和策略配置。1.全局配置首先,我们需要创建一个GlobalConfig对象,用于配置MyBatis的全局设置。以下是一些常用的全局配置选项:setOutputDir(StringoutputDir):设置生......
  • Java项目:208Springboot + vue实现的校园服务平台(含论文+开题报告)
    作者主页:夜未央5788 简介:Java领域优质创作者、Java项目、学习资料、技术互助文末获取源码项目介绍基于Springboot+vue实现的汽车服务管理系统本系统包含管理员、接单员、普通用户三个角色。管理员角色:管理员管理、基础数据管理、接单详情管理、接单员管理、公告信......
  • C# JavaScriptSerializer序列化时的时间处理详解
    原文链接:https://www.jb51.net/article/122143.htm输出如下图所示: 猜测这里是由于js初始化时间的时候往往是向1970/01/01添加毫秒数,JavaScriptSerializer进行序列化的时候也会格式化为距离1970/01/01到当该时间点GMT+0时间的毫秒数,如果直接反序列化可以看到少了8小时,且......
  • 1_JAVA线程
    Java线程1.创建和运行线程1.1直接使用Thread例如:publicclassThreadTest{publicstaticvoidmain(String[]args){Threadt=newThread(){publicvoidrun(){//要执行的任务System.out.println(Thr......
  • 【Java】输出填空 异常捕获
    classNoWaterextendsException{}classNoDrinkableWaterextendsNoWater{}publicclassFinallyWorks{staticintcount=0;publicstaticvoidmain(String[]args)throwsNoWater{while(true){try{count++;......
  • 【Java】7-1 职工排序题 分数 20
    1.为某保险公司设计一个职工管理系统,其中职工类的属性有:职工编号,姓名,性别,团体险业绩,个体险业绩;方法有:每个属性对应的set,get方法;不带参数的构造方法;带参数的构造方法,完成对职工属性的初始化;该类实现接口Comparable,完成对职工总业绩的比较。2.设计一个类,实现Comparator接口,......
  • ApplicationListener的简单使用
    ApplicationListener在Spring框架中的作用是监听并处理应用程序中的事件。ApplicationListener接口定义了一个onApplicationEvent方法,当监听器监听到事件发布后,会执行这个方法。这使得开发者能够灵活地响应应用程序中的各种事件,实现发布-订阅模式的功能。通过这种方式,Spring框架......
  • Java环境配置及配置过程遇到的问题
    配置过程安装完jdk之后,找到jdk的安装目录首先配置JAVA_HOME新建一个系统变量,变量值为jdk的路径再配置pathpath中新建变量值内容为%JAVA_HOME%\bin原因:因为jdk目录下的bin文件夹中存放着java和javac等的exe文件配置完之后打开新的cmd窗口即可javajavac能够显示出用法即可......
  • 深入理解代码耦合度:从无直接耦合到内容耦合(JAVA案例)
    目录前言第一点:无直接耦合第二点:数据耦合第三点:标记耦合第四点:控制耦合第五点:外部耦合第六点:公共耦合第七点:内容耦合总结前言在软件开发中,代码的耦合度是一个非常重要的概念。理解不同类型的耦合度对于设计和维护高质量的代码至关重要。本文将介绍从无直接耦合到......
  • Java数据结构与算法(回溯算法)
    前言回溯算法是一种通过构建问题的解树(或解图)来逐步构建候选解的通用算法。它尝试通过一系列选择来解决问题,选择可能包括移动、添加一个元素到当前解、决定一个解的某部分等。当发现某个选择无法导致一个有效解时,算法会回退(即回溯),撤销该选择,并尝试其他选择。回溯算法通常用于......