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';
}

总结

  1. 有输入并处理,无输出,用消费型接口(Consumer< T >)
  2. 无输入,有输出,用供给型接口(Supplier< T >)
  3. 有输入并有处理输出,用函数式型接口(Function<T,R>)
  4. 无输入,处理判断条件并输出布尔类型(true or false),用断言型接口(Predicate< T >)

java8新特性—四大内置核心接口的更多相关文章

  1. Java8新特性—四大内置函数式接口

    Java8新特性--四大内置函数式接口 预备知识 背景 Lambda 的设计者们为了让现有的功能与 Lambda 表达式良好兼容,考虑了很多方法,于是产生了函数接口这个概念. 什么是函数式接口? 函数 ...

  2. java8新特性——四大内置核心函数式接口

    在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...

  3. Java8新特性 -- 四大内置的核心函数式接口

    可以把这些函数式接口作为方法的参数. 1.0 核心内置函数式接口一: 消费型接口@FunctionalInterfacepublic interface Consumer<T> { voi ...

  4. Java8新特性_四大内置核心函数式接口

    Consumner : 消费型接口 Supplier :供给型接口 Function:函数式接口 Predicate:断言型接口 其他接口: 四大内置核心函数式接口: Consumner : 消费型接 ...

  5. Java8新特性一点通 | 回顾功能接口Functional Interface

    Functional Interface Functional Interface是什么? 功能接口是java 8中的新增功能,它们只允许一个抽象方法.这些接口也称为单抽象方法接口(SAM接口).这些 ...

  6. Java8新特性 - Java内置的四大核心函数式接口

    Java内置的四大核心函数式接口 Consumer:消费型接口 对类型为T的对象应用操作,包含方法:void accept(T t) public class TestLambda02 { publi ...

  7. Java8新特性_lambda表达式和函数式接口最详细的介绍

    Lambda表达式 在说Lambda表达式之前我们了解一下函数式编程思想,在数学中,函数就是有输入量.输出量的一套计算方案,也就是“拿什么东西做什么事情”. 相对而言,面向对象过分强调“必须通过对象的 ...

  8. JAVA8新特性简单总结

    速度更快代码更少强大的StreamAPI便于并行最大化的减少空指针异常Lambda表达式<具体做什么事>和函数式接口Lambda表达式(也叫做闭包)它允许我们将一个函数当作方法的参数(传递 ...

  9. Java8新特性(一)——Lambda表达式与函数式接口

    一.Java8新特性概述 1.Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 接口中的默认方法与静态方法 6. 新时间日期 API 7. 其他新特 ...

随机推荐

  1. [20191013]oracle number类型存储转化脚本.txt

    [20191013]oracle number类型存储转化脚本.txt --//测试看看是否可以利用bc obase=100的输出解决问题.另外以前脚本忘记考虑尾数的四舍五入问题.--//也许编程就是 ...

  2. JAVA 中 Map 与实体类相互转换的简单方法

    1. 在 pom.xml 中引入依赖包 <dependency> <groupId>com.alibaba</groupId> <artifactId> ...

  3. 02-align-items的用法

    侧轴是相对的 默认主轴是x 所以侧轴就是y轴 align-items设置侧轴上的子元素排列的方式(单行)纵轴方向上的对齐方式 align-items: flex-start; 顶部对齐 align-i ...

  4. 28.Java基础_抽象类

    抽象类的成员特点 public abstract class Animal { private String name; private int age; public Animal() { } pu ...

  5. 3. Go语言—函数和常量

    一.函数声明和注释 1. 声明 ​ func 函数名 (参数列表)(返回值列表){} func add{ pass } func add(a int, b int){ } func add(a int ...

  6. luoguP2163 [SHOI2007]园丁的烦恼

    安利系列博文 https://www.cnblogs.com/tyner/p/11565348.html https://www.cnblogs.com/tyner/p/11605073.html 题 ...

  7. 【转】java爬虫,爬取当当网数据

     背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...

  8. 《LinuxTools》

    https://zhuanlan.zhihu.com/p/37196870 Linux基础 Linux工具进阶 工具参考篇 1. gdb 调试利器 2. ldd 查看程序依赖库 3. lsof 一切皆 ...

  9. pycharm配置docker

  10. mysql8

    解决navicat不能连接问题: grant all privileges on *.* to ‘root’@’%’;ALTER USER 'root'@'localhost' IDENTIFIED ...