Java对List集合进行排序

这几天做题刚好遇到对List集合排序的题,发现一种好用的方法,做一个笔记。

我是基于spring,对于刚学java的小伙伴可以直接在main方法中去完成。

第一步
创建一个实体类对象User

package bean;

public class User {

    private String username;
    private Integer age;

    public User(String username, Integer age) {
        this.username = username;
        this.age = age;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

第二步
编写测试文件

package test;

import bean.User;
import org.junit.jupiter.api.Test;

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

public class SortDemo {

    @Test
    void doSort(){
        List<User> list = new ArrayList<User>();
        list.add(new User("张三",5));
        list.add(new User("李四",30));
        list.add(new User("王五",19));
        list.add(new User("微风",30));
        
        /**
         * 对年龄进行降序排序
         */
        Collections.sort(list, new Comparator<User>() {
            public int compare(User o1, User o2) {
                int diff = o1.getAge() - o2.getAge();
                if(diff < 0)  return 1;//前面的数小于后面的数
                if(diff > 0)  return -1;//前面的数大于后面的数
                              return 0;//相等的情况
            }
        });
        
        /**
         * 对年龄进行升序排序
         */
        /*
        Collections.sort(list, new Comparator<User>() {
            public int compare(User o1, User o2) {
                int diff = o1.getAge() - o2.getAge();
                if(diff > 0)      return 1;
                else if(diff < 0) return  -1;
                                  return 0;//相等返回0

            }
        });
        */
        for (User user:list){
            System.out.println(user.getAge());
        }
    }
}

降序排序运行结果:

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值