Java接口的理解以及lambda表达式实现,消费者Consumer,以及用于判断的接口Predicate

本文探讨了Java接口的理解,重点介绍了消费者Consumer接口的应用实践,并讲解了如何使用Lambda表达式实现。同时,文章还讨论了用于判断的Predicate接口,解释了其在检查字符串或数字条件时的作用,强调了接口统一和规范代码的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

消费者Consumer

package Line202;

import java.util.function.Consumer;

public class demo03 {
    public static void main(String[] args) {
/*     匿名内部类方法
            shower("郭飞宇", new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });*/
        //消费者就是一个函数内输入一个字符串,后面紧跟着一个Consumer对象
        //对其进行处理,如accept获取到对其处理
        //ps:consumer1.andThen(consumer2).accept,就是先对c1进行处理
       // ,在处理c2
        shower2("guoooo",(name)-> System.out.printf(name),(name)-> System.out.println("我是consumer2"+name));
        //前面要加name值,不要忘记
    }
/*    public static void shower(String name, Consumer<String> consumer){
        consumer.accept(name);
    }   */
    public static void shower2(String name, Consumer<String> consumer1,Consumer<String> consumer2){
        consumer1.andThen(consumer2).accept(name);
    }
}

//应用实践,你看,理解了之后就写出来了,

package Line202;

import java.util.ArrayList;
import java.util.function.Consumer;

public class demo031 {
    public static void main(String[] args) {
        ArrayList<String> arrayList=new ArrayList<>();
        arrayList.add("郭飞宇,21");
        arrayList.add("郭飞,22");
        arrayList.add("宇,24");
        arrayList.add("郭,2");

        shower(arrayList,name-> System.out.println(name.split(",")[0]),
                name-> System.out.println(name.split(",")[1]));
    }
    public static void shower(ArrayList<String> arrayList, Consumer<String> consumer1,Consumer<String> consumer02){

        for (String s:arrayList
             ) {
            consumer1.andThen(consumer02).accept(s);//等效于consumer1.accept(),   consumer02.accept()
        }
    }
}

判断,Predicate

  • 判断,就是对一个字符串/数字进行检查,例如检查是否满足要求,如字符串长度是否介于一个区间内,是否包含有逗号标点符号,这些东西自己可以用自己的方法写出来,可能接口提出来规定好了,它的作用也就是就在于统一和规范,大家一起遵守,是的阅读代码的人容易理解
public class demo04 {
    public static void main(String[] args) {
       boolean d= shower("郭飞宇2",s->s.length()>3,s->s.length()<5);
        System.out.println(d);
        System.out.println("郭飞宇2".length());
    }//return 的类型不必在下方表示出,lambda表达式表达即可
    public static boolean shower(String name,Predicate<String> s,Predicate<String> s1){
       return  s.and(s1).test(name);
       //return s.negate().test(name);
    }
}

自己实现一下吧

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值