使用stream流对List集合中对象的某个字段值升序、降序排列

class User{
    Integer sorted; // 假设这是你的字段

    // 构造函数和其他方法
    public User(Integer sorted) {
        this.sorted = sorted;
    }

    public Integer getSorted() {
        return sorted;
    }

    @Override
    public String toString() {
        return "User{" + "sorted=" + sorted + '}';
    }
}

升序排序

List<User> sortedList = list.stream()
                .sorted(Comparator.comparing(User::getSorted, 
                        Comparator.nullsLast(Integer::compareTo)))
                .toList();
// [User{sorted=1}, User{sorted=2}, User{sorted=3}, User{sorted=null}, User{sorted=null}]

降序排序

 List<User> sortedList = list.stream()
                .sorted(Comparator.comparing(User::getSorted, 
                        Comparator.nullsLast(Comparator.reverseOrder())))
                .toList();
// [User{sorted=3}, User{sorted=2}, User{sorted=1}, User{sorted=null}, User{sorted=null}]

你可能感兴趣的:(工具类,服务器,知识点,list,数据结构,spring,boot,后端,java)