[工具]--lambuda--List排序-List中内容相加

VFIO框架源码分析(二十二)- IOMMUFD 的脏页跟踪与 Dirty Bits 读取 在虚拟化热迁移(Live Migration)的场景中,脏页追踪(Dirty Page Tracking)是最具挑战性的环节之一。它的核心任务是实时捕获设备(DMA)对内存的写操作,以便 VMM(如 QEMU)知道哪些内存页需要被重新传输到目标主机。在强耦合与粗粒度:脏页追踪是绑定在 Container 上的。这意味着,如果一个 Container 内有多个设备,哪怕只有一个设备在写内存,脏页追踪也会影响 Container 内的所有设备。软件模拟开销大。 阅读详情

玩法

msglink
groupbylink
sort就在下面link
link
link
link
link
link
link
link
link
link
link

java lamuda 进行排序,但是属性是字符串数字,怎么办

charge = charge.stream().sorted().sorted(Comparator.comparing(e->Double.parseDouble(e.getNum()))).collect(Collectors.toList());

But 排序的实体,不能是静态内部类

如果是静态内部类呢
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class OuterClass {
    public static void main(String[] args) {
        List<GetChargePageDataRes.ChargeData> chargeList = new ArrayList<>();
        
        // 添加ChargeData对象到列表中
        chargeList.add(new GetChargePageDataRes.ChargeData(30));
        chargeList.add(new GetChargePageDataRes.ChargeData(10));
        chargeList.add(new GetChargePageDataRes.ChargeData(50));
        chargeList.add(new GetChargePageDataRes.ChargeData(20));

        // 使用Collections.sort进行排序
        Collections.sort(chargeList);

        // 打印排序结果
        for (GetChargePageDataRes.ChargeData charge : chargeList) {
            System.out.println(charge.getAmount());
        }
    }

    static class GetChargePageDataRes {
        static class ChargeData implements Comparable<ChargeData> {
            private int amount;

            public ChargeData(int amount) {
                this.amount = amount;
            }

            public int getAmount() {
                return amount;
            }

            @Override
            public int compareTo(ChargeData other) {
                // 自定义比较逻辑,这里按amount进行升序排序
                return Integer.compare(this.amount, other.amount);
            }
        }
    }
}

List中内容相加

long sum = list.stream().mapToLong(User::getAge).sum();

List<Integer>降序

    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(3, 1, 5, 100);
        List<Integer> newList = list.stream().sorted(Comparator.comparing(Integer::intValue).reversed())
                .collect(Collectors.toList());
    }

实体降序排序

List<User> newList = list.stream().sorted(Comparator.comparing(User::getAge).reversed())
                                  .collect(Collectors.toList());

实体升序

List<User> newList = list.stream().sorted(Comparator.comparing(User::getAge))
                                  .collect(Collectors.toList());

先降序后升序排序

package com.jiediankeji.test_action.start.javatest.lam.sort;

import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

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

public class TestSort {

    @Data
    @Accessors(chain = true)
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class A{
        private String cc;
        private int aa;
        private int bb;
    }


    public static void main(String[] args) {

        ArrayList<A> as = CollUtil.newArrayList(List.of(
                A.builder().aa(1).bb(0).cc("aa").build(),
                A.builder().aa(9).bb(99).cc("aa").build(),
                A.builder().aa(8).bb(99).cc("aa").build(),
                A.builder().aa(1).bb(4).cc("aa").build(),
                A.builder().aa(9).bb(1).cc("aa").build()
                ));
        //先降序后升序
        List<A> collect = as.stream().sorted(Comparator.comparing(A::getAa).reversed().thenComparing(Comparator.comparing(A::getBb))).collect(Collectors.toList());
        System.out.println(JSON.toJSONString(as));
        System.out.println(JSON.toJSONString(collect));

    }
}

自己写的一个工具类,对比蓝不打,是真的难用

    /**
     * 对任意集合的排序方法
     * @param object 要排序的实体类List集合
     * @param sortField  排序字段
     * @param sortMode   true升序,false降序序
     */
    public static <T> void sortList(List<T> object, final String sortField, final boolean sortMode) {
        if (CollectionUtils.isEmpty(object) || object.size() < 2 || StringUtils.isBlank(sortField)) {
            return;
        }
        Collections.sort(object, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                int retVal = 0;
                String methodStr = "get" + sortField.substring(0, 1).toUpperCase() + sortField.substring(1);
                try {
                    Method method1 = ((T) o1).getClass().getMethod(methodStr, null);
                    Method method2 = ((T) o2).getClass().getMethod(methodStr,null);
                    if (sortMode) {
                        retVal = method1.invoke(((T) o1), null).toString().compareTo(method2.invoke(((T) o2), null).toString());
                    } else {
                        retVal = method2.invoke(((T) o2), null).toString().compareTo(method2.invoke(((T) o1), null).toString());
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return retVal;
            }
        });

    }

removeIf

List list =new ArrayList();
list.add(“1”);
list.add(“12”);
list.add(“13”);
list.add(“0”);
System.out.println(“初始时:”+ list.toString());
list.removeIf(s -> s.contains(“1”));  //对集合进行过滤,删除集合中包含“1”的元素
System.out.println(“过滤完:” + list.toString());

2. Android_逆向的历史与发展 学完本节,希望你能够:了解 Android 逆向工程的发展历程,从早期 APK 破解到现代应用保护;入门先把这几类「在干啥」搞清楚,后面学脱壳、反反调试会顺很多。(反编译 APK 得到的类汇编代码,相当于程序的「菜谱」)就能绕过验证,到后来混淆、加固、反调试一起上,逆向难度越来越高。(第三节 什么是 CPU 指令集),帮你搞清楚「反汇编看到的那些指令」是从哪来的、和 Android 逆向有啥关系。有必要——先搞清「没加固时怎么玩」,再学脱壳和对抗,思路才顺。读起来费劲,但逻辑还在,耐心一点还能跟。 阅读详情

相关推荐

Opencv4.5.1 微信二维码识别功能 QRCode 编译与使用 C++

部分参考:https://mp.weixin.qq.com/s/2GZAJAUPHTXFOKDRv-D21Q 一、下载源码 https://github.com/opencv 二、源码编译 ① 在cmake中添加源码编译路径和生成路径,第一次点击configure。 ② 添加contrib路径 第一次configure后,找到OPENCV_EXTRA_MODULES_PATH,将contrib路径添加进来,注意要具体到modules/,继续configure。 ..

zaibeijixing的专栏 1万+

将List集合中相同属性的数值累加得到一条合计数据

在一般统计业务中,大都会有合计数据,即把需要累计的字段加起来。 @Data @AllArgsConstructor @NoArgsConstructor public class MagicList { private BigDecimal aa; private BigDecimal bb; private Integer cc; private Str...

sinat_33472737的博客 2万+

Mac上VMware Fusion手动安装VMware Tools实现跨系统复制粘贴

本文详细指导了在Mac的VMware Fusion中手动安装VMware Tools的完整流程,以解决虚拟机与宿主机之间无法复制粘贴的常见问题。通过定位安装镜像、挂载、解压并运行安装脚本,最终实现跨系统无缝数据交换,提升工作效率。

orange的博客 696

lambda :: 和计算list中某个字段值的总和

用lambda表达式计算一个list中的某个字段值的总和 int total = List.stream().mapToInt(entity::getDistance).sum(); 解释:List是要计算的list,mapToInt是将实体类entity中的属性转换为int,最后是sum求总共,lambda的stream可以理解为时做了一个循环 其中:: 也是匿名函数的一种 转自:http...

qq_35642849的博客 2万+

【TCGA-CRC】TCGA数据读取

本文介绍了如何从TCGA数据库中处理结肠癌(COAD)和直肠癌(READ)的RNA测序数据。首先,通过data.table::fread函数读取基因表达量文件,并检查基因ID和基因名称的一致性。接着,批量读取所有样本的TPM(Transcripts Per Million)数据,并将其合并为表达矩阵。随后,通过匹配样本ID和文件名,确保表达矩阵的列名与样本ID一致。最后,筛选出编码蛋白质的基因,并将处理后的数据保存为Rdata文件。整个过程涉及数据读取、合并、匹配和筛选,为后续的基因表达分析提供了基础。

小八四爱吃甜食的博客 662

运行stable-diffusion出现的问题

解决:即用 https://github.com/CompVis/taming-transformers/blob/master/taming/modules/vqvae/quantize.py 新文件,替换错误提示文件中的全部内容即可。5.新建文件夹 CompVis/stable-diffusion-safety-checker/将下载的四个文件放入 解决!后面还会遇到'openai/clip-vit-large-patch14离线下载的问题,同样步骤解决。解决:下载后离线,步骤如下。

weixin_52121118的博客 2345

Java使用不同方式获取两个集合List的交集、补集、并集(相加)、差集(相减)

Java使用不同方式获取两个集合List的交集、补集、并集(相加)、差集(相减)

吴名氏的博客 15万+

mfcc总结,这个mel三角滤波器分组到底是如何起作用的呢?

先看fft频谱图(这是4096字节取样fft计算,横轴频率是从0到512,后边意义不大,未取,纵轴是振幅),那些我随便画的蓝色线,你有什么联想?: 再看,这绿色线,是否有一种上升后,便逐渐式微的感觉,都是三角形的,这或许也是mel当初和绝大多数人看到的: 如果在振幅上加上一条限制的黑线(振幅门槛限制),黑色线以下很多频率就没有意义了,你看,有用的频率连一半(512/2=256)都占不到...

ganggangwawa的博客 9907

java8 list BigDecimal 求和

jdk1.8 list BigDecimal 求和 自定义一个新的list对BigDecimal求和的工具类,封装求和,最大值,最小值,平均值 下面有贴代码出来 //测试数据类 @Data @Accessors(chain = true) //开启链式编程 static class Test{ Long id; Integer type; BigDecimal money; } 使用自定义的CollectorsUtil类进行list求和 ArrayList<Test>

七濑武的博客 9715

海康VisionMaster图形定位实战:十字形Mark点精准匹配技巧

本文深入解析了海康VisionMaster图形定位模块在工业自动化中实现十字形Mark点精准匹配的实战技巧。文章从ROI设置、核心参数调优(如定位方式、尺度模式、对比度阈值)到工业场景应用与避坑指南,系统性地分享了提升匹配成功率和稳定性的关键步骤,帮助工程师应对复杂现场环境,实现高效、可靠的视觉定位。

weixin_29285605的博客 258

Cloud Connector RFC 访问控制深度实践:为 SAP BTP ABAP environment 打通安全、可控的远程连接

本文是一份面向企业ABAP团队与平台工程团队的Cloud Connector RFC访问控制配置指南。文章详细介绍了虚拟主机/实例号、负载均衡、资源白名单等核心概念,并提供了从零开始的配置流程。主要内容包括:通过Cloud Connector建立安全隧道的价值(零暴露、最小权限)、两种连接类型(无负载均衡/带负载均衡)的配置方法、资源白名单设置技巧,以及两个典型应用场景(Custom Code Migration远程检查与BAPI调用)的实操案例。指南基于SAP官方文档,包含落地经验与避坑建议,可帮助团队快

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 143

JAVA List使用lambda表达式循环数据,循内实现累加,分页

// 获取合计 JSONObject finalV = v; AtomicReference<Integer> sum = new AtomicReference<>(0); v.keySet().stream().forEach(key->{ Object o = finalV.get(key); if(o inst...

仅此一❤ 3122

基于Matlab模拟RANS湍流——详细分析与源代码

在模拟过程中,我们首先定义了模拟所需的参数,包括流体的动力黏度和密度,以及边界条件和网格分辨率。接下来,通过求解平均值方程和湍流涨落方程,我们模拟了湍流的演化过程。在本文中,我们将使用Matlab对RANS湍流进行模拟,并提供相应的源代码。RANS湍流模拟的基本思想是将流场的变量分解为平均值和涨落值,并通过求解平均值方程和湍流涨落方程来描述流场的演化。请注意,以上代码仅为示例,实际的RANS湍流模拟可能需要更复杂的算法和模型。接下来,我们将求解RANS方程,包括平均值方程和湍流涨落方程。

ByteKnight的博客 861

Java lambda 循环累加求和

Java8 lambda 循环累加求和 接口流-Stream(),简单列举一下可以使用一下方法求和。 修饰符和类型 方法 描述 Stream map(Function&amp;lt;? super T,? extends R&amp;gt; mapper) 返回由将给定函数应用于此流的元素的结果组成的流。 DoubleStream mapToDouble(ToDoubleFunction&amp;l...

Harry的博客 2万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

lambda表达式 java求和_Lambda【1】-- List相关Lambda表达式使用(上篇)

Lambda在jdk1.8里面已经很好用了,在这里不讲底层的实现,只有简单的用法,会继续补全。首先一个list我们要使用lambda的话,需要使用它的stream()方法,获取流,才能使用后续的方法。基础类User.javapublic class User {public long userId;public User() {}public User(long userId, String na...

weixin_39716264的博客 2040

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Lambda常用功能(排序、分组、去重、累加、截断、移除)

合并标志值,它将参与累加函数和合并函数的运算(即提供一个默认值,在流为空的时候返回该值,当流不为空时,该值作为起始值,参与每次累加或合并计算)// 根据比较器进行排序(升序),可以通过实现Comparator.comparing()方法,来创建自定义的比较器。:合并函数(合并多个标志,与collect方法的combiner参数原理类似,都是用于多线程的合并策略):同一分组的合并方法,将同一个类型合并为指定类型,该方法返回的是键值对的值。:提供一个方法,该方法的返回值是键值对的健。

qq_36138652的博客 3899

使用lamda表达式对list进行求和

Lambda 表达式是 JDK8 的一个新特性,最近写项目中求和计算使用的较多,写一篇文章记录一下,也方便不懂的人参考一下。 一、实体类List返回Integer类型求和 //根据id查询库存 List<ProductStock> list = productStockMapper.selectList(Wrappers.<ProductStock>lambdaQuery(...

yuanwxcsdn的博客 1万+

lambda累加求和

lambda累加求和

qq_36138652的博客 9730

java lambda 累加_Java lambda 循环累加求和代码

Java lambda 循环累加求和代码,给大家,希望能,可以使用,这篇,小编Java lambda 循环累加求和代码易采站长站,站长之家为您整理了Java lambda 循环累加求和代码的相关内容。java 8 stream 提供了下面几种类型的求和Stream::mapToIntStream::mapToDoubleStream::mapToLongpublic void test() {Li...

weixin_35133464的博客 2356

Lambda表达式(5)|(List求和、求平均、求最大最小、分组求)

Lambda表达式是Java 8中引入的一个新特性,它提供了一种清晰简洁的方式来表示一段单行的代码。Lambda表达式主要用于实现简单的接口,特别是只有一个方法的接口(函数式接口)。在集合操作中,Lambda表达式可以极大地简化代码,提高开发效率。本文将通过一个简单的例子来展示如何使用Lambda表达式进行列表中元素的求和与求平均、求最大值、最小值等一些操作。通过上述例子,我们可以看到Lambda表达式在集合操作中的威力。它不仅使代码更加简洁,而且提高了代码的可读性。

Oaklkm的博客 3676

List中常用的Lambda表达式

对比平常的for循环,stream().forEach可以进行并发处理,比如你这个循环里要进行很多业务处理,调用接口或者第三方,或者查询之类的接口,一般对值的处理还是用for循环好一点,性能上会快一点。属于中间操作,性能上不太好,还不如for循环,在某些特定调式的时候可以用。其中 reversed() 表示倒序的意思,如果不使用此方法则是正序。Function.identity()值的是整个对象的值当作vaule。写了一些常用的,后续如果用到一些其他的继续更新。开发随手记一些常用的吧。

qq_36598111的博客 2855

Java主要算法

排序: 一、冒泡排序Bubble Sort 原理:比较相邻的元素,小的值往前移 第一层for:控制执行轮数,长度-1 for(int i=0;i<a.length-1;i++) 第二层for:比较大小,交换位置 for(int j=0;j<a.length-1;j++){ 1、比较大小 2、交换位置 } 二、选择排序 原理:每次从现有数据里挑出一个最小的直接放在最前面,以此类推 根据下标进行比较 for(int i=0;i<a.length-1;i++){ .

lem14的博客 279

List分组求和

一个list数据中,如何做到像mysql那样分组求和? import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by csucoderlee on 2017 04 13 上午11:14. * * list中对相同nam

csucoderlee的专栏 8189

Lambda表达式

lambda

idpangpengcheng的博客 3526

lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和

lambda 表达式实现按某个属性值查找集合中符合条件的所有对象并求和 1,先按照条件找到所有符合的对象,生成集合。 2,把生成的集合进行单列求和。 以上两步骤用lambda 表达式可以合并。 定义对象: public class Cart { // 商品id private Integer id; // 商品所属分类 private Int...

qq_43021380的博客 7101

Java Lambda表达式指南

匿名函数:没有名称的函数函数式编程:可作为参数传递的代码块简洁语法:替代匿名内部类的更紧凑写法单抽象方法接口:只有一个抽象方法的接口可用注解标记// 可以有默认方法// 输出: HELLO。

qq_45351273的博客 812

list集合相同元素按其他字段求和

list集合相同元素按其他字段求和

ZhangJunQi的博客 2143
上一篇: springboot--拦截器和接口-ResponseBodyAdvice--WebMvcConfigurer-filter
下一篇: [linux]-快捷键-kjj
吧啦蹦吧
博客等级 码龄10年 52粉丝 139原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值