Lambda 编程

1.lambda 使用
2.自定义函数接口
3.stream Api
4.并行
5.optional异常判断

* lambda 函数式编程
* (1)Function: 指定入参和返回值类型(可以为void)
*       -> compose: before
*       -> andThen: after
*     apply()
* (2)Consumer: 指定入参,无返回值,注重内部消费
*       accept()
* (3)Predicate: 指定入参,返回值为Boolean
*       test()
* (4)Supplier: 无入参,指定返回值类型
*       get()



Lambda 表达式的基础语法:

Java8中引入了一个新的操作符 “->” 该操作符称为箭头操作符或 Lambda 操作符

(args1, args2...) -> {};

有且只有一个抽象方法的接口被成为函数式接口!

1.Function

(1)用于指定入参,返回值类型(这里可以指定为void)

(2)执行apply

Function<Integer,Integer> function01 = i -> i*10;
System.out.println(function01.apply(10));

2.Consumer

(1)指定入参,无返回值类型 ;

(2)注重内部消费

Consumer<List<String>> consumer02 = list -> {
            list.forEach(s -> System.out.println("list: "+s));
        };
consumer02.accept(Arrays.asList("a","b","c"));

3.Predicate

(1) 指定入参,不用指定返回值类型(限制为:Boolean)

Predicate<String> predicate01 = s -> "success".equals(s);
System.out.println(predicate01.test("fail"));

4.Supplier

(1)无入参,指定返回值类型 

Supplier<String> supplier01 = () -> "hello lambda";
System.out.println(supplier01.get());

总结:

(1)根据有无入参来判断:针对有参的方法,使用Function接口;无参的方法,使用Supplier

(2)根据有无返回值来判断:针对有返回值,使用Function;无返回值使用Consumer

 

# 自定义函数接口

函数式编程:

(1)只包含一个抽象方法的接口

(2)接口上使用 @FunctionalInterface 注解

@FunctionalInterface
public interface MyFunc01<T> {
    void run(T t);
}


// 使用自定义接口
MyFunc01<String> myFunc01 = s -> System.out.println("this is my funtion: "+ s);
myFunc01.run("hello");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值