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

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.dtcms.com/a/303093.html

相关文章:

  • 4、如何生成分布式ID?
  • Linux->模拟实现 fopen/fread/fwrite
  • Bruce Momjian 深圳 meetup 回顾
  • 大模型基础设施搭建 - 操作系统centos7
  • SDRAM
  • CTF-Web学习笔记:文件包含篇
  • 阿里给AI To C战略戴上眼镜
  • 4.应用层自定义协议与序列化
  • JUC线程池: ScheduledThreadPoolExecutor详解
  • VMWARE -ESXI-ntp时间同步无法启动异常处理
  • Go-Elasticsearch Typed Client 使用命名、结构与约定
  • Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与误报率降低策略(369)
  • AI原生应用:从人机关系重构到数字空间革命
  • 【分布式版本控制系统】Git的使用
  • 力扣17:电话号码的字母组合
  • 若依【(前后端分离版)SpringBoot+Vue3】
  • Android通知(Notification)全面解析:从基础到高级应用
  • 数据结构:下三角矩阵(Lower Triangular Matrix)
  • Eigen 中矩阵的拼接(Concatenation)与 分块(Block Access)操作使用详解和示例演示
  • 秩为1的矩阵的特征和性质
  • WireShark 抓包
  • Spring Boot项目生产环境部署完整指南
  • 数学建模算法-day[13]
  • 判断回文链表【两种O(n)时间复杂度】
  • iOS WebView 调试实战,第三方脚本加载失败与内容安全策略冲突问题排查指南
  • 前端高级综合搜索组件 SearchBox 使用详解!
  • React中的合成事件解释和理解
  • 归档日志-binlog
  • C语言的各种区
  • 背包DP之混合背包