首页 > 其他分享 >集合流的使用之“根据对象字段进行排序”

集合流的使用之“根据对象字段进行排序”

时间:2023-06-30 16:44:15浏览次数:40  
标签:collect1 对象 降序 id collect User 集合 排序 reversed

一、根据对象字段进行排序【代码】

    @Test
    public void wzwStream()
    {
        List<User> list = new ArrayList<>();
        for (int i = 1; i <= 3; i++)
        {
            User user = new User();
            user.setUserId(i);
            user.setCreatedBy(3 - i);
            list.add(user);
        }

        User user = new User();
        user.setUserId(2);
        user.setCreatedBy(2);
        list.add(user);
        User user1 = new User();
        user1.setUserId(2);
        user1.setCreatedBy(3);
        list.add(user1);


        // 按照id升序 并且 按照创建人降序
        List<User> collect = list.stream()
                .sorted(Comparator.comparing(User::getUserId).reversed().thenComparing(User::getCreatedBy).reversed())
                .collect(Collectors.toList());
        System.out.println("collect1 = " + collect.toString());

        // 按照id降序 并且 按照创建人降序
        List<User> collect1 = list.stream()
                .sorted(Comparator.comparing(User::getUserId).thenComparing(User::getCreatedBy).reversed())
                .collect(Collectors.toList());
        System.out.println("collect2 = " + collect1.toString());
  }

 

二、结果图

1.按照id升序 并且 按照创建人降序

 

2.按照id降序 并且 按照创建人降序

 

标签:collect1,对象,降序,id,collect,User,集合,排序,reversed
From: https://www.cnblogs.com/saoge/p/17517213.html

相关文章

  • 【前端教程03】for循环冒泡排序、去重、查找重复元素
    //升序constbubbleSort=(arr)=>{for(leti=0;i<arr.length;i++){for(letj=0;j<arr.length-i;j++){if(arr[j]>arr[j+1]){lettmp=arr[j];arr[j]=arr[j+1];arr[j+1]=tmp;......
  • 静态对象
    LightmapStatic:表示接受烘焙光照计算,可以烘焙光照贴图。OccluderStatic:表示自身可以被遮挡剔除掉。BatchingStatic:表示支持静态合批。NavigationStatic:表示可烘焙寻路网格。OccludeeStatic:表示自生是否可以遮挡其他元素。OffMeshLinkGeneration:寻路连接不同区......
  • 类型与对象(二)
    1.4类型推导C++强大的类型系统在C++98时代仅仅只有一种类型推导机制---模板;C++11新增了两个关键字用于类型推导---auto与decltype;C++14提供了关键字decltype(auto)用于简化某些推导场景,C++17提供了类模板参数推导特性,让程序员能够自定义模板类的推导规则,用户使用时无需再显......
  • (转)k8s常见的资源对象使用
    原文:https://www.cnblogs.com/cyh00001/p/16555344.html一、kubernetes内置资源对象1.1、kubernetes内置资源对象介绍1.2、kubernetes资源对象操作命令官网介绍:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/二、job与cronjob计划任务2.1......
  • 【leetcode】【83】【删除排序链表中的重复元素】
    c++第一个方法代码#include<algorithm>#include<iostream>#include<memory>#include<vector>//Definitionforsingly-linkedlist.structListNode{intval;ListNode*next;ListNode():val(0),next(nullptr){}......
  • 冒泡排序
    #include<stdio.h>voidbubble_sort(int*arr,intsz){ //确定冒泡函数的趟数 inti=0; for(i=0;i<sz-1;i++) { //每一趟冒泡排序 intj=0; intflag=0; for(j=0;j<sz-1-i;j++) { if(arr[j]>arr[j+1]) { inttmp......
  • 三种数据对象的区别
    DDD中三种常用的数据对象:数据对象(DO)、实体(Entity)和数据传输对象(DTO)。这三种数据对象的区别如下图总结:Preview ......
  • 全栈测试开发系列----WebDriver API及对象识别技术(二)---selenium验证码处理的多种实现
    前言对于测试人员而言,不管是进行性能测试还是自动化测试,验证码的处理都是棘手的存在,在WEB应用中,大部分系统在用户登录的时候都要求用户输入验证码,且验证码的种类繁多,如纯数字、纯字母、汉子组合、数学题运算、滑动图标、图片、短信、邮箱、语音等。既然要实现验证码的处......
  • 第一章 类型与对象
        在编程语言中通常会有类型的概念,我们所使用的C++也不例外,其为静态类型(与之对应的是动态类型,对象的类型在运行时确定,其类型也可以动态改变)系统,所有对象、变量(包括常量)都得在编译时确定类型,并确定后该对象、变量的类型将不能改变。静态类型在编译时已确定,其是固定......
  • 快速排序
    题目给定你一个长度为$n$的整数数列。请你使用快速排序对这个数列按照从小到大进行排序,并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数$n$。第二行包含$n$个整数(所有整数均在$1∼109$范围内),表示整个数列。输出格式输出共一行,包含$n$个整数,表示排......