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

java8案例对list[过滤、分组,转换,查找等]清洗逻辑

一 java8案例代码

1.1 代码

public class TestA { public static void main(String[] args) { List<AssistantResponse> assistantResponseList = new ArrayList<>(); AssistantResponse assistantResponse1 = new AssistantResponse(); assistantResponse1.setRepositoryId("123"); AssistantResponse assistantResponse2 = new AssistantResponse(); assistantResponse2.setRepositoryId("145,456,789"); assistantResponseList.add(assistantResponse1); assistantResponseList.add(assistantResponse2); Map<Integer, RepositoryConfigPo> resultMap = new HashMap<>(); RepositoryConfigPo repositoryConfigPo1 = new RepositoryConfigPo(); repositoryConfigPo1.setRepositoryName("中"); resultMap.put(123, repositoryConfigPo1); RepositoryConfigPo repositoryConfigPo2 = new RepositoryConfigPo(); repositoryConfigPo2.setRepositoryName("国"); resultMap.put(456, repositoryConfigPo2); RepositoryConfigPo repositoryConfigPo3 = new RepositoryConfigPo(); repositoryConfigPo3.setRepositoryName("人"); resultMap.put(789, repositoryConfigPo3); RepositoryConfigPo repositoryConfigPo4 = new RepositoryConfigPo(); repositoryConfigPo4.setRepositoryName("万"); resultMap.put(145, repositoryConfigPo4); for (AssistantResponse assistantResponse : assistantResponseList) { String repository = assistantResponse.getRepositoryId(); if (org.springframework.util.StringUtils.hasText(repository)) { List<String> cnNames = new ArrayList<>(); // 使用三元运算符决定是分割还是作为单个元素 String[] idArray = repository.contains(",") ? repository.split(",") : new String[]{repository}; // 开始 Stream 流式处理 Arrays.stream(idArray) // 1. 解析: 按逗号分割字符串 .map(String::trim) // 2. 清洗: 去除每个元素的首尾空格 .filter(id -> !id.isEmpty()) // 2. 清洗: 过滤掉空字符串 .map(Integer::parseInt) // 3. 转换: 将字符串转换为 Integer .map(resultMap::get) // 4. 查找: 从 resultMap 中获取对应的对象 .filter(Objects::nonNull) // 5. 过滤: 过滤掉 null 值 .map(RepositoryConfigPo::getRepositoryName) // 6. 提取: 获取 repositoryName .forEach(cnNames::add); // 7. 收集: 添加到 cnNames 列表中 // 将 cnNames 列表用逗号连接成字符串,并设置回对象 assistantResponse.setKnowledgeRepositoryName(String.join(",", cnNames)); } } assistantResponseList.stream().forEach(x -> { System.out.println("x:" + x.getKnowledgeRepositoryName()); }); }

1.2 执行结果

http://www.cnnetsun.cn/news/1309427.html

相关文章:

  • Csimplecleaner:C盘维护与空间管理的最佳实践
  • 智能科学与技术毕业设计2026开题指导
  • LeetCode热题100 括号生成
  • 项目实训。
  • 开关磁阻电机SRM12-8技术详解:额定功率达2200w,转速稳定达额定转速3450rpm
  • MATLAB环境下基于随机游走拉普拉斯算子的快速谱聚类方法 算法运行环境为MAYLAB R2018A
  • 神经网络PID控制BP_PID,模糊PID控制等Matlab/SImulink建模仿真
  • 2026-03-16 GitHub 热点项目精选
  • 计算机文件基础:从概念到路径实践
  • 螺杆式空压机工频运行,变频机不能用使用西门子224xp 十昆仑通态触摸屏,程序有注释
  • KEPServerEX 6.6中文版下载|稳定运行|含详细安装与教程
  • 【什么是二叉树?什么是二叉堆?】
  • 冒泡,选择,插入排序再学习
  • 【全网首家】·openclaw开发的GEO优化系统|小龙虾GEO系统|小龙虾专属GEO优化助理
  • TensorFlow eager模式超流畅
  • ARM Cortex‑M带U大介绍,内核都带啥U!
  • 视频如何防盗录传播.使用加密软件,轻松几步就可以解决烦恼
  • 制造业信息化系统开发工程师 - 学习资料汇总
  • 《低电压设计必看!轨到轨运放选型、电路搭建与常见坑避坑手册》
  • 不只是调包:Transformer编码器的原理与实现(一)
  • Linux系统重置root(破解密码)
  • JavaScript性能优化实战辰姿
  • TCP/IP网络-网络接口层标准
  • 黄仁勋发布万字长文:AI是一个五层蛋糕,万亿建设量还在后面
  • c语言初学
  • 编译器扩展与C++兼容性
  • Spring Aop失效的情況及解决办法
  • java毕业设计——基于JSP+sqlserver的网上超市设计与实现(毕业论文+程序源码)——网上超市
  • GD32E232的Modbus串口编程入门
  • PlayGround AI —— 使用图片生图器轻而易举