首页 > 其他分享 >List集合按照由小到大排序或者由大到小排序

List集合按照由小到大排序或者由大到小排序

时间:2024-11-19 20:29:06浏览次数:1  
标签:10 01 21 List 43 由大到 2023 CST 排序

@

目录

背景

原List<User>里面是无序的,比如从redis查找等情况,查出来的是无序的,现在想按照由小到大排序或者由大到小排序。

原代码

List<User> list = new ArrayList<>();
list.add(new User(3, "c", new Date(1686402103000L), new Date(1688994103000L)));
list.add(new User(1, "a", new Date(1686402103000L), new Date(1688994103000L)));
list.add(new User(2, "b", new Date(1686402103000L), new Date(1688994103000L)));
System.out.println("原顺序" + list);

结果展示:
原顺序[User(id=3, name=c, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023), User(id=1, name=a, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023), User(id=2, name=b, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023)]

由小到大排序

要按照对象的 ID 对 List 进行排序,可以使用 Java 中的 Comparator 接口和 Collections 类的 sort 方法。假设你有一个包含对象的 List,每个对象都有一个包含 ID 的属性。
首先,需要创建一个实现了 Comparator 接口的类,用于定义比较规则。在比较规则中,我们将根据对象的 ID 进行比较。
要控制按照大到小或小到大的顺序对 List 进行排序, 可以根据比较结果返回正数、负数或零。如果想要按照从小到大的顺序进行排序,可以保持原有的比较逻辑不变;如果想要按照从大到小的顺序进行排序,只需要反转比较结果即可。

Collections.sort(list, new Comparator<User>() {
    @Override
    public int compare(User obj1, User obj2) {
        return Integer.compare(obj1.getId(), obj2.getId());
    }
});
System.out.println("由小到大排序" + list);

结果展示:
由小到大排序[User(id=1, name=a, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023), User(id=2, name=b, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023), User(id=3, name=c, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023)]

由大到小排序

Collections.sort(list, new Comparator<User>() {
    @Override
    public int compare(User obj1, User obj2) {
        return -Integer.compare(obj1.getId(), obj2.getId());
    }
});
System.out.println("由大到小排序" + list);

结果展示:
由大到小排序[User(id=3, name=c, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023), User(id=2, name=b, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023), User(id=1, name=a, beginTime=Sat Jun 10 21:01:43 CST 2023, endTime=Mon Jul 10 21:01:43 CST 2023)]

重要信息


标签:10,01,21,List,43,由大到,2023,CST,排序
From: https://www.cnblogs.com/bigcat26/p/18555549

相关文章

  • Public NOIP Round #6 D 排序 题解
    Description今天是YQH的生日,她得到了一个\(1\simn\)的排列作为礼物。YQH是一个有强迫症的女孩子,她希望把这个排列从小到大排序,具体的,她可以进行这样的操作:把\([1,n]\)分成若干个区间,假如是\(m\)段,依次为\([l_1,r_1],[l_2,r_2],\dots,[l_m,r_m]\),其中\(l_1=1,r_m=......
  • R语言caretEnsemble包的caretList函数一次性构建多个机器学习模型、caret包的resample
    R语言caretEnsemble包的caretList函数一次性构建多个机器学习模型、caret包的resamples函数比较在同一数据集上多个机器学习模型的比较结果目录R语言使用caretEnsemble包的caretList函数一次性构建多个机器学习模型、并使用caret包的resamples函数比较在同一数据集上多个机......
  • 数据结构java:插入排序
    插入排序插入排序基本思想:直接插入排序希尔排序(缩小增量排序)插入排序基本思想:直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序中,直到所有的记录插入完为止,得到一个新的有序序列。实际......
  • Spring监听器之@EventListener
    Spring监听器目录Spring监听器一、两种使用最经典的使用方式1.1、首先定义事件类1.2、发送事件所表示的业务实体1.3、第一种方式:实现接口监听器1.4、第二种方式:实现注解监听器1.5、测试1.6、结果二、接口监听器添加原理2.1、接口方式注册监听器initApplicationEventMulticaster()......
  • 东胜物流软件 GetDataListCA SQL注入漏洞复现
    0x01产品简介东胜物流软件是青岛东胜伟业软件有限公司一款集订单管理、仓库管理、运输管理等多种功能于一体的物流管理软件。该公司初创于2004年11月(前身为青岛景宏物流信息技术有限公司),专注于航运物流相关环节的产品和服务。东胜物流信息管理系统货代版采用MS-SQLserver大型......
  • 递归实现快速排序的三种方法
    快速排序的定义快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法。其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所......
  • 快速排序
    #include<iostream>usingnamespacestd;constintN=1e6+10;inta[N],n;voidquick_sort(inta[],intl,intr){ if(l>=r)return; intx=a[l+r+1>>1],i=l-1,j=r+1;//防止r,l都为0而出错:l+r+1>>1 while(i&l......
  • 归并排序
    先递归为多个小部分再进行排序#include<iostream>usingnamespacestd;constintN=1e5+10;inta[N],tem[N];voidmerge_sort(inta[],intl,intr){ if(l>=r)return; intmid=l+r>>1; merge_sort(a,l,mid),merge_sort(a,mid+1,r);//......
  • 接口文档判断返回 List 还是 Array
    在Java编程语言中,List是一种集合接口,它可以用来存储一组有序的元素,并且允许存在重复的元素。而Array(数组)是一种固定长度的数据结构,一旦创建后其长度不可改变。尽管它们之间有一些相似之处,但在处理JSON数据时,我们通常使用List来表示JSON数组,因为List更灵活,可以动态......
  • 简单选择排序
     假设要排序的序列元素个数为n,简单选择排序的思路为:第一趟从第一个元素开始,在未排序的n个元素中选出最小元素,将其与序列第一个元素交换;第二趟从第二个元素开始,在未排序的n-1个元素中,选出最小元素,将其与本趟的第一个元素交换,以此类推,经过n-1趟,形成了从小到大的已排序序列。 ......