Java如何实现List自定义排序

作者:崔笑颜 时间:2021-07-03 06:09:15 

实体类


package com.whty.entity;

public class User {
private int id;
private String name;
private int age;

public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}

测试类


package com.whty.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import com.whty.entity.User;

public class Test {
public static void main(String[] args) {
List<User> list = new ArrayList<>();
list.add(new User(1, "java", 20));
list.add(new User(2, "spark", 19));
list.add(new User(3, "hive", 21));

for(User user :list) {
System.out.println("排序前:" + user.toString());
}
//实现排序
Collections.sort(list, new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
if(u1.getAge() > u2.getAge()) {
//return -1:即为正序排序
return -1;
}else if (u1.getAge() == u2.getAge()) {
return 0;
}else {
//return 1: 即为倒序排序
return 1;
}
}
});

for(User user :list) {
System.out.println("排序后:" + user.toString());
}
}
}

运行结果

排序前:User [id=1, name=java, age=20]
排序前:User [id=2, name=spark, age=19]
排序前:User [id=3, name=hive, age=21]
排序后:User [id=3, name=hive, age=21]
排序后:User [id=1, name=java, age=20]
排序后:User [id=2, name=spark, age=19]

来源:https://cloud.tencent.com/developer/article/1639912

标签:Java,List,自定义,排序
0
投稿

猜你喜欢

  • java同步之如何写一个锁Lock

    2023-04-23 08:10:54
  • SpringBoot整合screw实现数据库文档自动生成的示例代码

    2023-11-29 05:30:15
  • springcloud Zuul动态路由的实现

    2021-10-07 06:15:40
  • Java核心编程之文件随机读写类RandomAccessFile详解

    2023-11-28 17:40:05
  • mybatis查询返回Map<String,Object>类型的讲解

    2022-12-25 02:07:38
  • 详解JAVA中的OPTIONAL

    2022-08-22 17:09:04
  • 解决SpringBoot框架因post数据量过大没反应问题(踩坑)

    2023-11-28 11:59:30
  • Java发送报文与接收报文的实例代码

    2023-07-09 04:44:01
  • spring boot项目没有mainClass如何实现打包运行

    2021-10-24 11:29:20
  • Java ThreadLocal类应用实战案例分析

    2022-07-11 19:04:36
  • Java 全方位讲解面向对象特点与使用

    2023-07-21 18:34:06
  • 集合嵌套之ArrayList嵌套ArrayList实例

    2021-06-23 07:32:25
  • Android登录注册功能 数据库SQLite验证

    2023-10-01 20:58:55
  • java中Integer包装类装箱的一个细节详解

    2023-09-24 18:35:32
  • Mybatis实现SQL存储流程详解

    2022-09-11 05:17:05
  • 详解安装Eclipse Maven插件的几种方法

    2022-06-01 06:15:20
  • IDEA 2019.1.3 激活码大全

    2023-05-09 05:20:37
  • IDEA如何自动生成serialVersionUID的设置

    2023-08-09 04:00:33
  • C# 获取当前年份的周期及周期所在日期范围(推荐)

    2021-10-06 15:00:44
  • elasticsearch分布式及数据的功能源码分析

    2023-08-11 06:31:26
  • asp之家 软件编程 m.aspxhome.com