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.pswp.cn/diannao/93263.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93263.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/93263.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【esp32s3】7 - VSCode + PlatformIO + Arduino + 构建项目

一、PlatformIO 1.1. 概述 官方文档&#xff1a;What is PlatformIO? PlatformIO 是一个跨平台的物联网开发生态系统&#xff0c;专门为嵌入式系统开发设计&#xff0c;支持多种开发板和框架。 1.1.1. 主要特点 跨平台&#xff1a;支持 Windows、macOS 和 Linux多框架支持&…

LE AUDIO CIS/BIS音频传输时延的计算

LE AUDIO音频总时延计算方法 按照BAP的规范,LE AUDIO音频总延时包括三个部分:Audio Processing Time,Transport Latency,Presentation Delay。如下图所示是播放音乐的示例图: 这里还有一个麦克风录音的总时延示例图: Audio Processing Time:这个就是音频DSP获取音频数…

git 修改 更新

git 修改 更新先更新&#xff0c;后修改# 暂存当前修改 git add . git stash# 获取最新的 main 分支 git checkout main git pull# 新建开发分支 git checkout -b lbg_0727# ⚠️ 先把 main 的最新代码合并/变基到当前分支&#xff08;用于消除冲突&#xff09; # 方法1&#x…

飞鹤困局:增长神话的裂痕

增长天花板已然逼近&#xff0c;飞鹤需要探寻新方向。作者|安德鲁编辑|文昌龙“飞鹤&#xff0c;更适合中国宝宝体质”——这句曾让无数妈妈点头的广告语&#xff0c;帮飞鹤坐上了中国奶粉市场的头把交椅。可多年后&#xff0c;时代红利退潮&#xff0c;故事不好讲了。飞鹤的利…

Java设计模式之<建造者模式>

目录 1、建造者模式 2、建造者模式结构 3、实现 4、工厂模式对比 5、适用场景差异 前言 建造者模式是一种创建型设计模式。用于封装复杂对象的构建过程&#xff0c;通过步骤构建产品类。它包括产品类、抽象建造者、具体建造者和指挥者角色。 优点在于灵活性、解耦和易扩展…

fchown/fchownat系统调用及示例

55. fchmod - 通过文件描述符改变文件权限 函数介绍 fchmod是一个Linux系统调用&#xff0c;用于通过文件描述符来改变文件的访问权限。它是chmod函数的文件描述符版本&#xff0c;避免了路径名解析。 函数原型 #include <sys/stat.h> #include <unistd.h>int fchm…

20250726-5-Kubernetes 网络-Service 代理模式详解(iptables与ipvs)_笔记

一、服务三种常用类型  1. LoadBalancer类型 工作原理:与NodePort类似,在每个节点上启用端口暴露服务,同时Kubernetes会请求底层云平台(如阿里云、腾讯云、AWS等)的负载均衡器,将每个Node([NodeIP]:[NodePort])作为后端添加。 自动化实现:云厂商通过官方实现的控制…

horizon置备出错

报错内容如下&#xff1a; [2025/7/28 19:15] 置备 Customization failure: Customization of the guest operating system is not supported due to the given reason: 期间出错 解决方法&#xff1a;将模板转换为虚拟机&#xff0c;安装vmtools&#xff1b;再安装vmtools之后…

【unitrix】 6.19 Ord特质(ord.rs)

一、源码 这段代码定义了一个标记特征&#xff08;marker trait&#xff09;Ord 和三个实现&#xff0c;用于将类型标记与 Rust 标准库中的 Ordering 枚举关联起来。 use crate::sealed::Sealed; use core::cmp::Ordering; use crate::number::{Greater, Equal, Less}; /// 用于…

数据结构之顺序表链表栈

顺序表 什么是 list list 的使用 线性表是什么 顺序表是什么 顺序表和线性表的关系 顺序表和数组的区别 List 和 ArrayList 的关系 如何自己模拟实现 myArrayList ArrayList 的构造 ArrayList 的常见方法 以下两种写法有什么区别 ArrayList<Integer> arrayLis…

day062-监控告警方式与Grafana优雅展示

文章目录0. 老男孩思想-马太效应1. API监控2. zabbix的API接口2.1 生成zabbix的api token2.2 访问格式2.3 前端添加web监测3. 监控告警方式3.1 云监控-邮件告警3.1.1 邮箱开启授权码3.1.2 zabbix前端配置3.1.3 消息模板3.1.4 配置邮箱收件人信息3.1.5 配置触发器3.2 企业微信告…

Ettus USRP X410/X440 运行 ADC 自校准

Ettus USRP X410/X440 运行 ADC 自校准 打开一个接收&#xff08;Rx&#xff09;会话到您在设备名称输入中指定的设备并返回会话句柄 out&#xff0c;您可以使用该句柄在所有后续 NI-USRP VI 中识别此仪器会话。 支持设备&#xff1a;Ettus USRP X410/X440输入/输出 文明.png 会…

Qt元类型系统(QMetaType)详解

Qt元类型系统详解一、Qt元类型系统(QMetaType)详解1. 核心功能2. 注册机制3. 关键技术点4. 信号槽支持5. 流式传输支持6. 使用场景7. 注意事项二、完整示例1、基本实例2、基本实例3、元类型在信号槽中的应用4、高级用法三、元对象编译器moc元对象编译器&#xff08;Moc&#xf…

《C++继承详解:从入门到理解公有、私有与保护继承》

《C继承详解&#xff1a;从入门到理解公有、私有与保护继承》 文章目录《C继承详解&#xff1a;从入门到理解公有、私有与保护继承》一、继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承基类成员访问方式的变化1.3 继承类模版二、基类和派生类间的转换三、…

佳能iR-ADV C5560复印机如何扫描文件到电脑

打印机与电脑连接首先&#xff0c;确保佳能iR-ADV C5560复印机通过USB或Wi-Fi等网络连接的方式成功连接到电脑。这可以通过USB线缆或Wi-Fi等网络来实现。连接完成后&#xff0c;便可利用打印机内置的扫描功能&#xff0c;轻松将文件扫描并传输至电脑中。【扫描操作步骤】接下来…

腾讯AI IDE

1.官网说明&#xff1a;打开腾讯AI IDE官网。2.安装说明&#xff1a;安装成功后的界面。3.登录 说明&#xff1a;通过邮箱和密码登录。4.成功说明&#xff1a;成功登录如下界面。5.简单一问说明&#xff1a;理解能力感觉不错。拥有Claude-3.7-Sonnet​​&#xff0c;​​Claude…

【LeetCode 热题 100】(一)哈希

1. 两数之和 class Solution {public int[] twoSum(int[] nums, int target) {int length nums.length;// 1.声明一个hashmap {nums[i], i}HashMap<Integer, Integer> map new HashMap<>();for (int i 0; i < length; i) {int second target - nums[i];if(m…

PMOS快速关断电路、PMOS加速关断电路

[电源系列]二、低成本MOS快速关断电路原理分析 MOS的减速加速电路设计 分享一个微碧在网上看到的电路情况 加速电路1 PMOS关断时间较长。 当用100kHz的频率驱动PMOS时&#xff0c;PMOS G极的电压信号并不是一个脉冲波&#xff0c;PMOS一直处于线性放大的状态&#xff0c;并且…

Docker笔记(基本命令、挂载本地gpu、Dockerfile文件配置、数据挂载、docker换源)

Docker 主要用于环境搭建以及服务部署 基本命令 1.查看镜像 docker images 2.查看容器 docker ps # 查看容器仅仅为查看运行状态的容器 docker ps -a # 查看所有状态的容器3.退出容器 exit4.删除镜像、容器 docker rm 镜像ID docker rm 容器ID docker rm -f 容器ID # 强制删除…

算法竞赛阶段二-数据结构(37)数据结构循环链表模拟实现

之前单链表中&#xff0c;数组全初始化为0&#xff0c;末尾最后一个next 存的就是0&#xff0c;指向的就是头节点循环链表的基本概念循环链表是一种特殊的链表&#xff0c;其尾节点的指针域指向头节点&#xff0c;形成一个闭环。与普通单链表相比&#xff0c;循环链表的遍历需要…