java四大函数式接口

小白入门级,此博客纯属自己记笔记用!!!
1.函数型接口Function
参数类型T,返回类型R
在这里插入图片描述
只有一个方法的接口才能是函数式接口,Function类只有apply()方法
示例
在这里插入图片描述
使用匿名内部类,直接new Function接口,重写apply()方法。传入参数为一个字符串,返回字符串长度。使用Lambda表达式简写:

Function<String,Integer> function = (String s) -> {return s.length()};

只有一个参数,可以省略参数类型和括号
Function<String,Integer> function = s -> {return s.length();};
2.断定型接口Predicate
参数类型T,返回类型boolean,只有一个test()方法
在这里插入图片描述
示例:
在这里插入图片描述
3.消费型接口Consumer
accept()方法,参数类型T,返回为void
在这里插入图片描述
示例:
在这里插入图片描述

4.供给型接口Supplier
无参,有返回类型T
在这里插入图片描述
示例:
在这里插入图片描述
总结

在这里插入图片描述
这些函数接口大量使用在底层源码,这里使用Stream流计算来举例:
流是数据渠道,用于操作数据源(集合,数组)所生成的元素序列,集合讲的是数据,流讲的是计算。
假设有一堆user(Id,name,age),从这些user中查出选择出Id为偶数,年龄大于24岁,名字变大写,倒序,输出一个user。

        User user1 = new User(11,"a",23);
        User user2 = new User(12,"b",24);
        User user3 = new User(13,"c",22);
        User user4 = new User(14,"d",28);
        User user5 = new User(16,"e",26);
        List<User> list = Arrays.asList(user1,user2,user3,user4,user5);

select name from user where … and …and …可以达到这种效果,使用Stream流也可以:
在这里插入图片描述
结果:
在这里插入图片描述

在这里插入图片描述
可以看到filter里面使用了Predicate函数接口,选出Id为偶数的操作为
list.stream().filter( u->{ return u.getId() % 2 == 0;}) //u为参数代表user,这里list里面存的是user。其他的有兴趣可以详细了解Stream类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值