java 函数接口Consumer简介与示例【函数式编程】【Stream】

news2024/11/15 10:53:19

Java 8 中的 消费者接口Consumer 是一个函数接口,它可以接受一个泛型 类型参数,它属于java.util.function包。
accept(T) 方法:是 Consumer 函数式接口的方法,传入单个输入参数,无返回值,可以用于 Lambda 表达式和方法引用。
andThen(Consumer) 方法:可以传入一个 Consumer ,返回组合了两个 Consumer 后的 Consumer ,传入的 Consumer 不能为 null,否则会得到 NullPointerException 。

你可以使用 Consumer 来执行某个动作,比如打印操作,该动作接受一个参数并且不返回任何值。

我们先来看两个例程:

import java.util.function.Consumer;
public class ConsumerTest {

	public static void main(String[] args) {
        Consumer<String> first = x -> System.out.println("1."+x.toLowerCase());
        Consumer<String> second = y -> System.out.println("2." + y);
        System.out.println("开始");
        Consumer<String> result = first.andThen(second);
        //调用了accept 时,会先执行 first 的代码,再执行 second 的代码
        result.accept("World");
   
	}
}

调用accept 方法时,会先执行 first 里的代码,再执行 second 里的代码
测试结果:
在这里插入图片描述
第二个例程:

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Stream;
public class ConsumerTest {

	public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        Consumer <String> consumer  = x -> {
            if (x.startsWith("a")){
                list.add(x);
            }
        };
        Stream.of( "aa","bb","cac","abd","ee" ).forEach(consumer);
        list.forEach(System.out::println);

	}
}

测试结果:
在这里插入图片描述
未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

日本央行还会加息?机构与市场唱反调!

最近&#xff0c;关于日本央行是否会继续加息的话题引发了市场热议。一边是市场对加息预期大幅下降&#xff0c;另一边却有像先锋、M&G这样的国际知名资产管理公司坚定地看好日本央行的进一步紧缩。 这究竟是怎么回事呢&#xff1f; 市场与机构的观点分歧 市场看跌加息&am…

如何通过社交媒体有效促进口碑营销?

在一个广告无处不在的时代&#xff0c;大多数品牌不能再盲目的选择传统的广告轰炸&#xff0c;而应依靠口碑营销&#xff0c;通过消费者的自发传播实现了品牌的快速崛起。 口碑营销的几个关键的传播要素&#xff1a; 真实性&#xff1a;在广告反感的时代&#xff0c;消费者更倾…

Java常用API第二篇

正则表达式&#xff1a; 正则表达式&#xff08;简称 regex&#xff09;是用来描述字符串模式的工具&#xff0c;常用于字符串的查找、匹配、替换等操作。它在文本处理、数据验证、以及编程中非常常见。以下是正则表达式的基本知识点&#xff1a; 1. 正则表达式的基础符号 . (…

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署 什么是RAG&#xff1a; 我能把这个过程理解为Kimi.ai每次都能列出的一大堆网页参考资料吗&#xff1f;Kimi学了这些资料以后&#xff0c;根据这里面的信息综…

期权有指定的交易场所吗?

在当前的金融市场环境下&#xff0c;设立专门的股票期权交易所&#xff0c;比如上交所&#xff0c;深交所和中金所&#xff0c;都是国内出门的交易场所&#xff0c;不过期权交易都是在券商和期货开通账户买卖&#xff0c;但这并不妨碍投资者通过其他途径参与期权投资&#xff0…

DHCP原理及实验

目录 1.基础知识 &#xff08;1&#xff09;基本概念 &#xff08;2&#xff09;DHCP优点 2.工作原理 3.私接路由器解决方法 4.实验搭建 &#xff08;1&#xff09;实验top &#xff08;2&#xff09;实验概述 5.配置命令 &#xff08;1&#xff09;基础配置 &#…

音境剧场:开启声学体验的全新纪元—轻空间

在现代建筑和空间设计中&#xff0c;声学环境越来越受到重视。一个好的声学空间&#xff0c;不仅能提升使用者的感受&#xff0c;还能为各种活动提供最优质的音效体验。作为创新声学空间的代表作&#xff0c;“音境剧场”应运而生&#xff0c;它不仅是一个多功能场馆&#xff0…

FunHPC算力平台评测

作为内测老用户&#xff0c;已经用DeepLn平台&#xff08;现改名为FunHPC平台&#xff09;好久了&#xff0c;一路见证了平台从最初100多人的小群到现在满群的状态&#xff0c;FunHpc平台确实在一步步的走向成熟&#xff0c;一步步的变大。趁着现在活动的时间&#xff0c;发篇文…

ant design pro 中用户的表单如何控制多个角色

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的 看上面的图片 当创建或编辑一个用户时&#xff0c;…

vue3里面的组件实例类型(包括原生的html标签类型)

在 通过 ref&#xff08;null&#xff09;获取组件的时候&#xff0c;我们想要为 组件标注组件类型&#xff0c;可以通过 any 类型来进行标注&#xff0c;但是很明显&#xff0c;这些的代码很不优雅&#xff0c;所以我们可以利用 vue3 里面的 InstanceType 来进行类型标注 这是…

基于STM32开发的智能窗帘控制系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化光照检测与窗帘控制手动控制与状态指示Wi-Fi通信与远程控制应用场景 家庭智能窗帘办公室环境控制常见问题及解决方案 常见问题解决方案结论 1. 引言 智能窗帘控制系统通过集成光照…

去中心的投票平台

项目介绍&#xff1a; 前端&#xff1a; vue3vant4 工具&#xff1a; vscode和vant在线平台&#xff1a;Vant - Mobile UI Components 交互&#xff1a; Web3.js库 工具&#xff1a;小狐狸钱包&#xff08;MetaMask&#xff09; 后端&#xff1a; solisity 工具&#xff1…

Java并发必杀技!线程池让你的程序速度飙升不止一点点!

文章目录 1 线程池的工作机制是什么&#xff1f;2 线程池的任务出现异常该怎么解决&#xff1f;3 线程池的内存泄露该如何解决&#xff1f; 近期迷上了举例子来结合知识点学习&#xff0c;尽量减少枯燥&#xff0c;如有错见谅哈~ 1 线程池的工作机制是什么&#xff1f; 线程池…

登录方式(c语言)

1.//描述 //有个软件系统登录的用户名和密码为&#xff08;用户名&#xff1a;admin&#xff0c;密码&#xff1a;admin&#xff09;&#xff0c;用户输入用户名和密码&#xff0c;判断是否登录成功。 //输入描述&#xff1a; //多组测试数据&#xff0c;每行有两个用空格分开的…

Java语言程序设计——篇十五(1)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…

K8s节点状态 NotReady排查

k8s节点由 Ready变成 NotReady izbp12ghzy6koox6fqt0suz NotReady slave 97d v1.23.3 izbp12ghzy6koox6fqt0svz Ready control-plane,master 98d v1.23.3节点进入 NotReady 状态可能是由于多种原因引起的&#xff0c;尤其是在资源过量分配&am…

CSS+JS实现一个鼠标移动的高亮边框效果

一、过程分析 先上效果&#xff1a; 在Windows系统里有一个很棒的细节效果&#xff0c;元素的渐变高亮边框是可以感知鼠标的&#xff0c;边框的高亮部分会跟随鼠标的移动而移动。 这种效果也是比较常见的&#xff0c;但是实现起来还是需要一点时间和思路的。 首先&#xff0…

花裤衩 vue 前后端登录

从官网复制地址, idea中打开打开后输入 npm i 编译下载修改配置 找到 vue.config.js打开后,找到第39行 删除代码, 把可粘贴粘上 可粘贴: proxy: { [process.env.VUE_APP_BASE_API]: { target: http://127.0.0.1:18080, changeOrigin: true, pathRewrite…

使用托管竞价实例在Amazon SageMaker上运行机器学习训练

这是本系列文章的第二篇&#xff0c;旨在通过动手实践&#xff0c;帮助大家学习亚马逊云科技的生成式AI相关技能。通过这些文章&#xff0c;大家将掌握如何利用亚马逊云科技的各类服务来应用AI技术。 那么让我们开始今天的内容吧&#xff01; 介绍 什么是Amazon SageMaker …

ant design pro access.ts 是如何控制多角色的权限的

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二 看上面的图片&#xff0c;在前端中如何控制这些权限&#xff0c;比如控制按钮的显示&#xff0c;还有菜单…