java8对list进行升序和降序排序

package com.ways.price.overallMarket;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author qiuhongyu
 * @date 2022/2/28 11:18
 */
@SpringBootTest
public class StaffTest {

    @Test
    public void run1() {
        List<Staff> list = new ArrayList<>();

        Staff staff1 = new Staff();
        staff1.setName("隔壁老王");
        staff1.setAge(18);

        Staff staff2 = new Staff();
        staff2.setName("李四");
        staff2.setAge(28);

        Staff staff3 = new Staff();
        staff3.setName("赵六");
        staff3.setAge(12);

        Staff staff4 = new Staff();
        staff4.setName("小明");
        staff4.setAge(39);

        list.add(staff1);
        list.add(staff2);
        list.add(staff3);
        list.add(staff4);

        List<Staff> listAgeAsc = list.stream().sorted(
                Comparator.comparing(Staff::getAge)).collect(Collectors.toList());
        System.out.println("升序结果:" + listAgeAsc.toString());

        List<Staff> listAgeDesc = list.stream().sorted(
                Comparator.comparing(Staff::getAge).reversed()).collect(Collectors.toList());
        System.out.println("降序结果:" + listAgeDesc.toString());


    }
}

执行结果
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于List中是int类型的元素,可以使用Collections.sort(List<T> list) 方法进行升序排序,使用Collections.reverse(List<T> list) 方法进行排序。 对于List中是String类型的元素,可以使用Collections.sort(List<T> list, Comparator<? super T> c) 方法进行排序。其中,Comparator接口可以自定义比较器,实现对String类型的元素进行排序。 对于List中是实体类的元素,可以同样使用Collections.sort(List<T> list, Comparator<? super T> c) 方法进行排序。而在实体类中,需要对比较的字段进行重写compareTo()方法,或者实现Comparator接口进行自定义比较器。例如,对于实体类中的String类型的字段进行排序: ``` public class Entity implements Comparable<Entity> { private String name; // getter and setter @Override public int compareTo(Entity o) { return this.name.compareTo(o.getName()); } } ``` 对于实体类中的int类型的字段进行排序: ``` public class Entity implements Comparable<Entity> { private int id; // getter and setter @Override public int compareTo(Entity o) { return Integer.compare(this.id, o.getId()); } } ``` 然后,可以使用Collections.sort(List<T> list) 方法进行升序排序,使用Collections.reverse(List<T> list) 方法进行排序。如果需要按照实体类中的String类型的字段进行排序,可以使用Collections.sort(List<T> list, Comparator<? super T> c) 方法,自定义比较器,实现对实体类中的字段进行排序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值