当前位置: 首页 > 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/a/325243.html

相关文章:

  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】自定义View
  • 【网络】什么是交换机?switch
  • 【免越狱】iOS砸壳 可下载AppStore任意版本 旧版本IPA下载
  • 「Mac玩转仓颉内测版14」PTA刷题篇5 - L1-005 考试座位号
  • Mac 电池没电关机导致时间不同步
  • Go 语言切片初始化与性能优化:使用 cap 参数的重要性
  • 瑞芯微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