当前位置: 首页 > article >正文

java8:处理数据stream并传值

以下是可以将百分比的值直接塞入实体类的方法:
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

class Entity {
    String name;
    int pid;
    long time;
    long lastTime;
    double percentage;

    public Entity(String name, int pid, long time) {
        this.name = name;
        this.pid = pid;
        this.time = time;
    }
}

public class Main {
    public static List<Entity> calculatePercentage(List<Entity> beforeList, List<Entity> afterList, long duringTime) {
        return beforeList.stream()
               .map(beforeEntity -> {
                    Entity afterEntity = afterList.stream()
                           .filter(a -> a.pid == beforeEntity.pid)
                           .findFirst()
                           .orElse(null);
                    if (afterEntity!= null) {
                        long lastTime = afterEntity.time - beforeEntity.time;
                        double percentage = (double) lastTime / duringTime;
                        beforeEntity.lastTime = lastTime;
                        beforeEntity.percentage = percentage;
                    }
                    return beforeEntity;
                })
               .collect(Collectors.toList());
    }

    public static void main(String[] args) {
        List<Entity> before = new ArrayList<>();
        before.add(new Entity("item1", 1, 1000));
        before.add(new Entity("item2", 2, 2000));

        List<Entity> after = new ArrayList<>();
        after.add(new Entity("item3", 1, 1500));
        after.add(new Entity("item4", 2, 2500));

        List<Entity> result = calculatePercentage(before, after, 1000);
        result.forEach(System.out::println);
    }
}


http://www.kler.cn/news/325243.html

相关文章:

  • 瑞芯微RK3566鸿蒙开发板Android11修改第三方输入法为默认输入法
  • pysim-1
  • [Redis][集群][上]详细讲解
  • ComfyUI 速度更快,显存占用更低的图像反推模型Florence2PromptGen,效果媲美JoyCaption,还支持Flux训练打标
  • Linux驱动开发(速记版)--驱动基础
  • 2024重生之回溯数据结构与算法系列学习(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
  • 单ISP与双ISP的区别是什么
  • 踩坑集之demosaic对接VDMA
  • 第三十八条:使用接口模拟可扩展的枚举
  • Vue 学习
  • unity安装报错问题记录
  • Web端云剪辑解决方案,提供多轨视频、音频、特效、字幕轨道可视化编辑
  • DC00016基于java swing+MySQL房屋租赁管理系统GUI租赁管理系统javaswing项目
  • 20240926 关于Goland处理wsl-GOROOT原理猜测
  • Spring Cloud 工程搭建服务注册_服务发现
  • OCR Fusion: EasyOCR/Tesseract/PaddleOCR/TrOCR/GOT
  • 我在 Thoughtworks 被裁前后的经历
  • spark 大表与大表join时的Shuffle机制和过程
  • Python通过Sqlalchemy框架实现增删改查
  • Qt网络编程——QTcpServer和QTcpSocket
  • centos7 semanage 离线安装 SELinux
  • Vue3 + TS 实现同一项目同一链接,pc端打开是web应用,手机打开是H5应用
  • Solidity语言:重点学习Solidity编程语言,这是EVM上最常用的智能合约语言。
  • 关于大模型的10个思考
  • 828华为云征文 | 云服务器Flexus X实例:向量数据库 pgvector 部署,实现向量检索
  • Stable Diffusion零基础学习
  • 基于SpringBoot+Vue+MySQL的体育商城系统
  • Linux,C高级——day4
  • 【AI写作】解释 RESTful API,以及如何使用它构建 web 应用程序。
  • 基于nodejs+vue的水产品销售管理系统