lambda表达式-接口

函数式接口:

函数式接口是接口中只有一种抽象方法;

函数式接口作为参数的方法:

public class RunableDemo {
    public static void main(String[] args) {
        //匿名内部类的方式使用
        startThread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"启动线程");
            }
        });
        
        // lambda表达式来实现,表达式作为参数传递进去;
        startThread(() -> 
                System.out.println(Thread.currentThread().getName()+"启动线程"));
        // 
    }
    // 这个方法需要一个接口传入
    private static void startThread(Runnable r){
        new Thread(r).start();
        
    }
}

常用函数式接口:

java.util.function 包下预定义了大量的函数式接口供我们使用;

主要如下:

1、Supplier接口   主要是生产数据,里面的  get()   方法,返回值是一个泛型,即Supplier<T>  中指定的返回T,最后会作为返回值

public class SupplierDemo {
    public static void main(String[] args) {
        //使用匿名内部类
        String s = getString(new Supplier<String>() {
            @Override
            public String get() {
                return "llp";
            }
        });

        //使用lambda表达式
        String s1 = getString(() -> "llp");
    }

    //定义一个方法返回一个字符串数据
    private static String getString(Supplier<String> sup){
        return sup.get();
    }
}

2、Consumer接口

          是一个消费性的接口,接受单个输入参数并且不返回结果的操作;里面有两个方法;

             accept(T t) 对给定的参数执行一个指定的操作

            andThen (consumer<? super T>    after);  ,返回一个组合的Consumer

public class ConsumerTest {
    public static void main(String[] args) {
        String[] strarray ={"s,12","b,13","c,14"};
        
        // lambda 表达式
        printInfo(strarray,(String str) ->{String name = str.split(",")[0];
            System.out.print("姓名"+name);},
                (String str) ->{int age = Integer.parseInt(str.split(",")[1]);
                    System.out.println("年龄"+age);});
        
        
    }

    private static void printInfo(String[] strArray, Consumer<String> con1,
                                  Consumer<String> con2) {
        for (String str:strArray){
            con1.andThen(con2).accept(str);
        }
    }

}

3、Predicate接口

     常用方法:

test(T t) 在给定的参数上评估这个词,返回布尔类型,具体的评估方法由lambda重写

 

 

 

4、Function接口

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zero _s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值