Java-8-Consumer

Java 8 Consumer 使用 文章目录一、什么是Java 8 Consumer?二、consumer接口方法三、consumer accept()方法案例四、Java 8 andThen()方法使用五、其他类型5.1 例子六、总结 一、什么是Java 8 Consumer? Java 8 consumer是一个内置的函数式接口,代表着一个操作:接受一个入参,然后什么都不返回。这是一个函数式接口,所以可以在lambda表达式中作为参数使用,也可以使用方法引用。 和Java 8 的 Supplier 正相反, Supplier 是不需要入 阅读详情

Java-8-Consumer

interface Consumer

Consumer的作用顾名思义,是给定义一个参数,对其进行(消费)处理,处理的方式可以是任意操作

源码:

public interface Consumer<T> {

    
    //对给定的参数T执行定义的操作
    void accept(T t);

    //对给定的参数T执行定义的操作执行再继续执行after定义的操作
    default Consumer<T> andThen(Consumer<? super T> after) {
        Objects.requireNonNull(after);
        return (T t) -> { accept(t); after.accept(t); };
    }
}



简单例子

public class M1 {


    public static void main(String[] args) {

        Consumer<String> consumer1 = s -> System.out.println(s.length());

        consumer1.accept("abc");

        System.out.println("----------------------");

        Consumer<Integer> consumer2 = integer -> System.out.println(integer);

        consumer2.accept(4545);

        System.out.println("----------------------");

        Consumer<String> consumer3 = s -> System.out.println(s);

        Consumer<String> consumer4 = s -> System.out.println(s.toUpperCase());

        //先执行consumer3 再执行consumer4
        consumer3.andThen(consumer4).accept("jhdhhfdhuhhd");

        System.out.println("----------------------");


        Consumer<Integer> consumer5 = integer ->
        {
            if (integer > 50){
                System.out.println(integer);
            }
        };

        List<Integer> integers = Create_Data.supply_Integers();

        integers.stream()
                .forEach(consumer5);
        
        System.out.println("----------------------");

        List<Person> personList = Create_Data.supply_Persons();

        Consumer<Person> consumer6 = person ->
        {
            if (person.getAge() > 15) {
                System.out.println(person);
            }
        };

        personList.stream()
                .forEach(consumer6);


    }
}



针对特定类型

DoubleConsumer IntConsumer LongConsumer



public class M1 {


    public static void main(String[] args) {

        DoubleConsumer consumer1 = d -> System.out.println(d);

        consumer1.accept(454.002);

        System.out.println("-------------------------");

        IntConsumer consumer2 = i ->
        {
            if (i > 10){
                System.out.println(i);
            }
        };

        List<Integer> integers = Create_Data.supply_Integers();

        for (int i : integers){
            consumer2.accept(i);
        }

        System.out.println("-------------------------");

        LongConsumer consumer3 = l -> System.out.println(l);

        consumer3.accept(15L);



    }
}

ObjIntConsumer ObjDoubleConsumer ObjLongConsumer

例子:


public class M2 {


    public static void main(String[] args) {

        ObjIntConsumer<Person> personObjIntConsumer = (person,integer) ->
        {
            if (person.getAge() > integer){
                System.out.println(person);
            }
        };

        List<Person> personList = Create_Data.supply_Persons();

        for (Person person:personList){
            personObjIntConsumer.accept(person,55);
        }

    }
}

两个参数

BiConsumer<T, U>


public class M3 {


    public static void main(String[] args) {

        BiConsumer<String,Integer> biConsumer = (s,i) ->
        {

            if (s.length() > 2 && i > 60){
                System.out.println("OK");
            }

        };

        List<Person> personList = Create_Data.supply_Persons();

        for (Person person : personList){
            biConsumer.accept(person.getName(),person.getAge());
        }

        System.out.println("-----------------------");

        BiConsumer<Person,String> biConsumer2 = (p,s) ->
        {

            if (p.getOrigin().equals("Shanghai")){
                System.out.println(s);
            }
        };

        for (Person person : personList) {
            biConsumer2.accept(person,"来自上海的群众");
        }



    }
}


实现自己的Consumer


@FunctionalInterface
public interface MyConsumer<T,R,U> {

    void accept(T t,R r,U u);
}


public class M1{


    public static void main(String[] args) {

        MyConsumer<Person,Integer,String> myConsumer = (person,integer,string) ->
        {
            if (person.getAge() > integer) {
                System.out.println(string);
                System.out.println(person);
                System.out.println("");
            }
        };

        List<Person> personList = Create_Data.supply_Persons();

        for (Person person : personList) {
            myConsumer.accept(person,50,"年纪大于50的人");
        }

    }
}


华为HCIP-001:PPPOE配置模拟实验 华为HCIP01:PPPOE配置模拟实验 实验环境 pppoe-client上面的接口信息 [AR1]dis ip interface brief *down: administratively down ^down: standby (l): loopback (s): spoofing The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 1 Th 阅读详情

相关推荐

T100服务端接口实战:从注册到日志排查的全链路开发指南

本文提供了一份T100服务端接口开发的全链路实战指南。从程序注册与框架签出开始,详细讲解了接口的数据结构设计、核心业务逻辑编写,到最终的部署上线与调用验证。文章重点分享了如何利用日志文件高效定位和排查接口问题,帮助开发者快速掌握T100接口开发的关键步骤与实用技巧。

weixin_28831399的博客 296

03 java8实战--常见函数式接口:Consumer

文章目录1 Consumer2 BiConsumer 1 Consumer @FunctionalInterface public interface Consumer<T> { /** * Performs this operation on the given argument. * * @param t the input argument */ void accept(T t); 接受一个T,无返回值,内部就是消费这个T来实现

wyaoyao93的博客 402

Cadence仿真实战:从零构建高精度带隙基准电压源

本文是一份详细的Cadence仿真实战指南,指导读者从零开始构建高精度带隙基准电压源。文章首先解释了带隙基准电压源稳定输出电压的原理,然后逐步演示了在Cadence Virtuoso环境中如何搭建测试电路、测量关键温度系数、计算并搭建核心电路,并通过参数扫描和迭代调优来驯服温度漂移,最终实现低漂移的基准电压输出。

weixin_29207533的博客 242

Java Lambda Consumer<T> BiConsumer DoubleConsumer IntConsumer LongConsumer ObjDoubleConsumer ObjLong

Java Lambda Consumer<T> BiConsumer DoubleConsumer IntConsumer LongConsumer ObjDoubleConsumer ObjLongConsumer //Consumer<T> 提供一个T类型的输入参数,不返回执行结果 Consumer<String> c = (s) -> System.out.println(s); // Tom c.accept("Tom"); c.and

2万+

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 211

MobaXterm远程连接频繁掉线?3个SSH保活设置让你告别断连烦恼

本文针对MobaXterm远程连接频繁掉线问题,提供了3个SSH保活设置方案。从基础的SSH心跳机制到进阶的会话超时调整,再到TCP层保活与代理优化,全方位解决断连烦恼。特别适合需要稳定远程连接的开发者和运维人员,有效提升工作效率。

weixin_29250573的博客 485

Java 8 新特性-Function函数式接口

说明java.util.function包是Java 8增加的一个新技术点"函数式接口",此包共有43个接口。这些接口是为了使Lamdba函数表达式使用的更加简便,当然你也可以自己自定义接口来应用于Lambda函数表达式。Lambda是Java 8 的最大特点,本文对此并没有进行详解。本文还应用了Java 8的另一个特点“引用方法”(引用方法是用的冒号“::”来进行方法的调用),有兴趣的Frien...

小白的博客 3万+

(Linux)DHCP 超级作用域和中继代理(超难受做了超久)

DHCP服务器在192.168.159.0 可以实现分配IP的功能,现在要跨网段分配IP 就需要用到DHCP中继代理。中继代理有两张网卡分别eth0:IP 192.168.159.2 ;eth1: IP:192.168.200.2 。现在要实现192.168.200.0网段的客户机可以获取DHCP服务器的IP。中继代理其实是相当于一个路由器的作用 DHCP服务器的IP地址 :192.168.159...

DJ_joker的博客 2223

【Java技术专题】「Java8技术盲区」函数接口字典-看看还有哪些你所不知道函数接口

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。 515

30、优化算法在芯片布局与药物设计中的应用

本文探讨了优化算法在芯片布局与药物设计中的关键应用。针对芯片布局问题,提出了一种改进的粒子群优化(PSO)方法,通过引入转向因子、重叠检测与消除机制以及优先处理约束模块,有效优化了芯片面积、线长和运行时间,并在有无布局约束条件下均优于传统方法。在药物设计领域,介绍了基于蚁群优化(ACO)的PLANTS算法,用于解决蛋白质-配体对接问题,通过离散化连续变量、信息素更新、局部搜索和聚类处理,提高了构象预测的准确性。文章还总结了两种算法的操作流程,并展望了未来在多约束集成与算法融合方向的发展潜力。

egg99的博客 94

利用R批量计算相关系数

批量求相关系数

weixin_52073820的博客 1458

Java函数式ObjDoubleConsumer接口介绍、应用场景和示例代码

是 Java 8 引入的一个函数式接口,位于包中。它表示一个接受一个对象和一个double值的操作,不返回结果。是一个灵活的接口,适用于多种场景中结合对象和数值的处理,使得代码更简洁且易于维护。

a_beiyo的博客 425

基于STM32L4XX、HAL库的 TMC2660C-PA 驱动程序设计

/ 默认灵敏度和电流。// 20/31最大电流。

zhusl6688的博客 384

JAVA8 Consumer接口

Consumer的语义是消费的意思,了解一些消息队列的同学,肯定对这个单词,有一定的理解,我们先看接口的定义 @FunctionalInterface public interface Consumer<T> { void accept(T t); default Consumer<T> andThen(Consumer<? supe...

鸭鸭的博客 9万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Java 8 新特性】Java Consumer示例

Java Consumer示例功能方法:accept使用Lambda表达式创建Consumer例1 基础类型操作例2 对象类型操作使用方法引用创建Consumer使用andThen方法例1 简单拼接Consumer例2 多个拼接Consumer参考文献 Java Consumer接口来自Java 8中引入的java.util.function包。 Consumer是一个功能接口,用来作为lambda表达式或方法引用的任务目标(传递一个参数执行指定的方法)。 Consumer的功能接口是一个接受单一参数并且不

猫巳的博客 4万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Java脱坑指南】Java8 Consumer的使用

import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; /** * 在我看来 Consumer 就是花里胡哨的美化处理数据而已 * @date 2019年7月26日 上午11:36:20 */ public class ConsumerTest { // 比如,我...

harryperlau的博客 1936

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java8(三) Consumer、Function、Predicate、Supplier

java8(三) Consumer、Function、Predicate、Supplier 1:Consumer< T> 接口 Consumer:代表了接受一个输入参数并且无返回的操作,相当于消费者。 consumer源码 package java.util.function; import java.util.Objects; @FunctionalInterface public interface Consumer<T> { void accept(T t);

weixin_49114503的博客 1497

Java8中的Predicate和Consumer

由于工作需求,最近了解了一下Java8中的Predicate和Consumer接口,在此浅谈一下对它们的理解和使用:首先先来看一下Predicate官方文档解释:Represents a predicate (boolean-valued function) of one argument. This is a functional interface whose functional metho...

AGodDog的博客 3290

Java8新特性 consumer

个人公众号,欢迎关注下:小蜗牛会飞 Java8新特性 consumerJava8的一个新特性-consumerhttps://mp.weixin.qq.com/s/YIddXxQvW18ic73O3Jl_0w 今天来聊聊Java8的一个新特性-consumer,这个是在项目中发现同事用过,所以就研究研究一下。 consumer从字面上面来理解就是消费的意思,用过mq的,应该大概可以了解到意思。 我们先来看看Java8定义的这个consumer的接口: @FunctionalInterfa...

sober_snail的博客 5080

java consumer_Java8之Consumer接口

Consumer:代表了接受一个输入参数并且无返回的操作,相当于消费者。函数式接口介绍从JDK8开始java支持函数式编程,JDK也提供了几个常用的函数式接口,例如Consumer接口。函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。Java为函数式接口引入了一个新注解@FunctionalInterface,主要用于函数式接口编...

weixin_39944074的博客 226

java8 函数编程Consumer使用详解

从源码来看,Consumer函数主要有两个方法,accept和andThen。建立演示方法: 执行结果: 演示二 创建一个car汽车类 创建演示方法: 执行结果: 演示三 执行结果: consumer从字面上面来理解就是消费的意思,用过mq的,应该大概可以了解到意思。我们先来看看Java8定义的这个consumer的接口: 该接口被@FunctionalInterface注解修饰,这个注解的意思代表的是这个接口只有一个抽象接口方法,如果超过一个,只不能不用该接口,会编译不通过。该接口有一个抽象方法acc

qq_43842093的博客 4627

java8 Consumer

前言:啊吖吖~,我又来分享java8新特性系列函数了,最近有在努力学习,认真分享知识,也希望认真阅读的你发光脑门不亮,点赞~笔芯 老规矩,上源码 此函数标有@FunctionalInterface 是java8新特性函数式接口 @FunctionalInterface public interface Consumer<T> { void accept(T t); default Consumer<T> andThen(Consumer<? su.

lxj_1993的博客 795

Java8之Consumer接口

Consumer:代表了接受一个输入参数并且无返回的操作,相当于消费者。 函数式接口介绍 从JDK8开始java支持函数式编程,JDK也提供了几个常用的函数式接口,例如Consumer接口。 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 Java为函数式接口引入了一个新注解@FunctionalInterface,主...

weixin_30367873的博客 489

java consumer_Java8 Consumer&BiConsumer使用

java8里面consumer&BiConsumer也是函数式接口,从代码上看,consumer只有一个入参,没有返回值;BiConsumer两个入参,没有返回值。1、Consumer简单例子package com.cattles.function;import java.util.function.Consumer;/*** @author cattle - 稻草鸟人* @date 2...

weixin_29758911的博客 1615

JAVA 8 Consumer与BiConsumer

参考: https://www.jianshu.com/p/63771441ba31 https://blog.youkuaiyun.com/qq_28410283/article/details/80704487 https://www.yiibai.com/geek/detail/518 1、Consumer 源码: package java.util.function; import java.util.Objects; /** * Represents an operation that accepts

try to do 1797
上一篇: Java-8-Predicate
下一篇: Java-8-Supplier
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值