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

Java 函数式接口BiConsumer

BiConsumer是一个函数式接口,代表一个接受两个输入参数且不返回任何内容的操作符

import java.util.ArrayList;
import java.util.List;
import java.util.function.BiConsumer;public class BatchOperate<T> {private int batchSize=3000;private List<T> content=new ArrayList<>();private BiConsumer<Integer,List<T>> consumer;private int pageNo;private long total;public void setConsumer(BiConsumer<Integer,List<T>> consumer){this.consumer=consumer;}public void setBatchSize(int batchSize) {this.batchSize = batchSize;}public void addBatch(T t){this.content.add(t);this.total++;if (content.size()>=batchSize){this.executeBatch();}}public long getTotal() {return total;}public void executeBatch() {if(this.content.size()>0){pageNo++;consumer.accept(this.pageNo,this.content);this.content=new ArrayList<>();}}}

使用:

private void processUser(){int size  = 1000;BatchOperate<User> batchOperate = new BatchOperate<>();batchOperate.setBatchSize(size);batchOperate.setConsumer((index, list) -> {log.info("######处理用户信息:{}", index);removeUserInfo(list);});for(int i=0; i < 9000; i++){ //生成用户放到 batchOperateUser user = new User();batchOperate.addBatch(user);}batchOperate.executeBatch();
}private void removeUserInfo(List<user> userList){//处理逻辑System.out.println(userList.size());
}

http://www.lryc.cn/news/347129.html

相关文章:

  • SWERC 2022-2023 - Online Mirror H. Beppa and SwerChat (双指针)
  • 四川汇昌联信:拼多多运营属于什么行业?
  • C++11 特性
  • 二、使用插件一键安装HybridCLR
  • 【江科大STM32学习笔记】新建工程
  • C++小程序:同一路由器下两台计算机简单通信(1/2)——服务器端
  • EditReady for Mac激活版:专业视频转码工具
  • Android app通过jcifs-ng实现Samba连接共享文件夹
  • linux开发笔记(buildroot打包镜像)
  • 预编码算法学习笔记
  • 2024OD机试卷-最长子字符串的长度(一) (java\python\c++)
  • docker 部署并运行一个微服务
  • Hive on Tez 作业优化参数
  • flink mysql数据表同步API CDC
  • AI大模型探索之路-训练篇21:Llama2微调实战-LoRA技术微调步骤详解
  • 如何使用client-go构建pod web shell
  • AI工具摸索-关于写作(1)
  • 昂科烧录器支持O2Micro凹凸科技的电池组管理IC OZ7708
  • Spring Cloud Gateway详解
  • 信息系统项目管理师0103:初步可行性研究(7项目立项管理—7.2项目可行性研究—7.2.2初步可行性研究)
  • Linux 系统中,nl命令用于计算文件中的行号
  • 知从科技战略客户经理张志强受邀出席2024 AutoSec中国汽车网络安全与数据安全峰会
  • 2024.5.12 Pandas 基础语法day02
  • Stable Diffusion是什么?
  • Netty源码分析二NioEventLoop 剖析
  • chatGLM或chatgpt:什么是tokens以及如何计算tokens长度?
  • springcloudalibaba版本发布说明
  • Obsidian/Typora设置图床
  • 【RAG论文】RAG中半结构化数据的解析和向量化方法
  • git提交代码异常报错error:bad signature 0x00000000