java8新特性—四大内置核心接口
java8新特性—四大内置核心接口
四大内置核心接口
//消费型接口
Consumer<T>:: vode accept(T t);
//供给型接口
Supplier<T>:: T get();
//函式型接口
Function<T,R>:: R apply(T t);
//断言型接口
Predicate<T>:: boolean test(T t);
消费型接口
@Test
public void test() {
addMoney(20, (m) -> System.out.println(m + 20));
}
private void addMoney(Integer money, Consumer<Integer> con) {
con.accept(money);
}
供给型接口
@Test
public void test() {
List<Integer> list = getMoney(5, () -> (int) (Math.random() * 5));
for (Integer integer : list) {
System.out.println(integer);
}
}
private List<Integer> getMoney(Integer nums, Supplier<Integer> sp) {
List<Integer> list = new ArrayList<Integer>(0);
for (int i = 0; i < nums; i++) {
Integer n = sp.get();
list.add(n);
}
return list;
}
函数式型接口
@Test
public void test3() {
System.out.println(strHandle(" lll lll ccc ccc ", String::trim));
}
private String strHandle(String str, Function<String,String> function) {
return function.apply(str);
}
断言型接口
@Test
public void test4() {
System.out.println(filterStr("holle",(e) -> e.equals('l')));
}
private Character filterStr(String str, Predicate<Character> pt) {
char[] chars = str.toCharArray();
for (char aChar : chars) {
if (pt.test(aChar)) {
return aChar;
}
}
return '\0';
}
总结
- 有输入并处理,无输出,用消费型接口(Consumer< T >)
- 无输入,有输出,用供给型接口(Supplier< T >)
- 有输入并有处理输出,用函数式型接口(Function<T,R>)
- 无输入,处理判断条件并输出布尔类型(true or false),用断言型接口(Predicate< T >)
java8新特性—四大内置核心接口的更多相关文章
- Java8新特性—四大内置函数式接口
Java8新特性--四大内置函数式接口 预备知识 背景 Lambda 的设计者们为了让现有的功能与 Lambda 表达式良好兼容,考虑了很多方法,于是产生了函数接口这个概念. 什么是函数式接口? 函数 ...
- java8新特性——四大内置核心函数式接口
在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...
- Java8新特性 -- 四大内置的核心函数式接口
可以把这些函数式接口作为方法的参数. 1.0 核心内置函数式接口一: 消费型接口@FunctionalInterfacepublic interface Consumer<T> { voi ...
- Java8新特性_四大内置核心函数式接口
Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...
- Java8新特性一点通 | 回顾功能接口Functional Interface
Functional Interface Functional Interface是什么? 功能接口是java 8中的新增功能,它们只允许一个抽象方法.这些接口也称为单抽象方法接口(SAM接口).这些 ...
- Java8新特性 - Java内置的四大核心函数式接口
Java内置的四大核心函数式接口 Consumer:消费型接口 对类型为T的对象应用操作,包含方法:void accept(T t) public class TestLambda02 { publi ...
- Java8新特性_lambda表达式和函数式接口最详细的介绍
Lambda表达式 在说Lambda表达式之前我们了解一下函数式编程思想,在数学中,函数就是有输入量.输出量的一套计算方案,也就是“拿什么东西做什么事情”. 相对而言,面向对象过分强调“必须通过对象的 ...
- JAVA8新特性简单总结
速度更快代码更少强大的StreamAPI便于并行最大化的减少空指针异常Lambda表达式<具体做什么事>和函数式接口Lambda表达式(也叫做闭包)它允许我们将一个函数当作方法的参数(传递 ...
- Java8新特性(一)——Lambda表达式与函数式接口
一.Java8新特性概述 1.Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 接口中的默认方法与静态方法 6. 新时间日期 API 7. 其他新特 ...
随机推荐
- 使用 wx.miniProgram.postMessage 传递网站数据来分享网站程序页面
在小程序里使用web-view组件,在对小程序点击顶部分享按钮分享时,分享的内容为当前页面的内容,需要使用wx.miniProgram.postMessage来进行处理 H5页面代码 created( ...
- C++踩坑——用memset对vector进行初始化
在一段程序中,使用memset对vector进行了初始化,然后得到了错误的结果.找这个bug花费了很长时间. vector中有其自身的结构,不能单纯的按字节进行初始化.使用memset对vector进 ...
- 03-flex-wrap是否换行
flex-wrap:运用到父元素上 结合 display: flex; flex-wrap: wrap; 换行 flex-wrap: nowrap; 不换行 #main { width: 300px ...
- vue中如何使用echarts,使用axios获取数据
1==>首先准备一个容器 <div id="echartContainer" style="width:400px; height:400px"&g ...
- DOM的重绘和回流及代码性能优化
1.DOM的重绘和回流Repaint&Reflow 1.1重绘:元素样式的改变(但宽高.大小.位置等不变) 如outline.visibility.color.background-color ...
- python27期尚哥讲TCP:
TCP:传输控制协议(使用情况多于udp) 稳定:保证数据一定能收到 相对UDP会慢一点 web服务器一般都使用TCP(银行转账,稳定比快要重要)TCP通信模型: 在通信之前,必须先等待建立链接 TC ...
- DRF--验证器
前戏 在之前我们对前端妹子传来的数据进行校验,使用的是序列化类来进行校验的,但这里面往往满足不了我们的需求,更多的时候我们希望自己定义校验规则.这里介绍三种自定义校验的方式.分别是单一字段校验,多个字 ...
- 【洛谷4920】[WC2015] 未来程序(提答题)
点此看题面 大致题意: 把\(10\)个点的暴力代码和输入数据都给你,让你求出输出数据. 子任务\(1\) 第一个子任务自然是拿来送分用的... 容易发现就是一个快速乘的过程啊. 代码如下: #inc ...
- Eureka注册中心的自我保护模式
如果在Eureka Server的首页看到以下这段提示,则说明Eureka已经进入了保护模式. EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTAN ...
- Django-compressor压缩静态文件,逆天!!!!!
使用django-compressor压缩混淆静态文件 使用django-compressor压缩混淆静态文件 使用django-compressor压缩混淆静态文件 django-compresso ...