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

java里List链式编程

java里对list的操作,我们一遍使用for遍历,输出或改变里面的内容。单经常在代码里面我们发现,也可以使用这样的代码结构

 daPaymentActionVo.setApnolist(paymentActionVo.getApnolist().stream().map(PaymentActionVo.Voucher::getApno).collect(Collectors.toList()));

 daPaymentActionVo.setApnolist(paymentActionVo.getApnolist().stream().map(PaymentActionVo.Voucher::getApno).collect(Collectors.toList()));

这是链式编程

在 Java 中,可以使用链式编程(Fluent Interface)风格来操作 List,使代码更加简洁和易读。以下是几种常见的链式编程方式:

 Java 8 Stream API 链式操作

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class ListChainExample {public static void main(String[] args) {List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve");// 链式操作示例List<String> result = names.stream().filter(name -> name.length() > 3)  // 过滤长度大于3的名字.map(String::toUpperCase)          // 转换为大写.sorted()                          // 排序.collect(Collectors.toList());     // 收集为ListSystem.out.println(result);  // 输出: [ALICE, CHARLIE, DAVID]}
}

 使用第三方库如 Guava 的链式构建

import com.google.common.collect.ImmutableList;
import java.util.List;public class GuavaChainExample {public static void main(String[] args) {// 使用Guava构建不可变ListList<String> colors = ImmutableList.<String>builder().add("Red").add("Green").add("Blue").build();System.out.println(colors);  // 输出: [Red, Green, Blue]}
}

集合工具类的链式操作

import java.util.*;
import java.util.stream.Collectors;public class CollectionUtilsExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);// 链式操作List<String> processed = numbers.stream().filter(n -> n % 2 == 0).map(n -> "Number: " + n).peek(System.out::println)  // 输出: Number: 2, Number: 4, Number: 6.collect(Collectors.toList());}
}

优点:

链式编程的优势在于:

  • 代码更加简洁易读

  • 操作步骤清晰可见

  • 减少了临时变量的使用

  • 支持流畅的操作序列

注意:在链式操作中,每个方法通常都返回一个对象(通常是当前对象或新对象),这样才能继续调用下一个方法。

http://www.xdnf.cn/news/16387.html

相关文章:

  • 【智慧物联网平台】安装部署教程——仙盟创梦IDE
  • Jenkins流水线部署+webhook2.0
  • 四、计算机组成原理——第7章:输入/输出系统
  • 命令执行漏洞
  • EAP(基于事件的异步编程模式)
  • 思途SQL学习 0728
  • SIM2REAL记录
  • 初识 docker [下] 项目部署
  • 亚马逊地址关联暴雷:新算法下的账号安全保卫战
  • 通过具有一致性嵌入的大语言模型(LMMs)实现端到端乳腺癌放射治疗计划制定|文献速递-医学影像算法文献分享
  • 反欺诈系统:Oracle 到 ES 迁移实战
  • 形参表不匹配(BUG)
  • R语言常用扩展包
  • 【自动化运维神器Ansible】Ansible常用模块之unarchive模块详解
  • YOLO11 改进、魔改|低分辨率自注意力机制LRSA ,提取全局上下文建模与局部细节,提升小目标、密集小目标的检测能力
  • 10、Docker Compose 安装 MySQL
  • 动/静态库的原理及制作
  • 鸿蒙打包签名
  • Linux:线程同步与线程互斥
  • Vue 工程化
  • 重构vite.config.json
  • Linux Shell 命令
  • 设计模式(九)结构型:组合模式详解
  • 卷积神经网络研讨
  • 设计模式(三)创建型:抽象工厂模式详解
  • 3D芯片香港集成:技术突破与产业机遇全景分析
  • Cursor下利用Stagewise实现 “所见即改” 的前端开发体验~
  • Linux kill正在执行的后台任务 kill进程组
  • Cline与Cursor深度实战指南:AI编程助手的革命性应用
  • github上传本地项目过程记录