Java8函数式接口

  • 1. Consumer<T> 消费型接口
  • 2. Supplier <R> 供给型接口
  • 3. Function<T, R> 函数型接口
  • 4. Predicate<T> 断定型接口
  • 5. 四大接口总结

函数式接口有利于lambda表达式的编写和流式计算。在Java中定义了四种函数式接口, Consumer 消费型接口 有参无返, Supplier 供给型函数 无参有返, Function 函数式接口 有参有返, Predicate 断定型接口。 四大接口。接口参数和返回值只有一个。

下面T为类型的泛型,R为返回的泛型

1. Consumer<T> 消费型接口

  1. 匿名内部类实现
// 消费型函数
Consumer<String> consumer = new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println("come in consumer type function..." + s);}
};
  1. lambda演示
private static void consumerDemo() {Consumer<String> consumer = str -> {System.out.println("消费型函数 有参无返");System.out.println(str);};// 调用consumber接口中的函数consumer.accept("bitQian666");
}

2. Supplier <R> 供给型接口

  1. 匿名内部类实现
// 供给型函数
Supplier<String> supplier = new Supplier<String>() {@Overridepublic String get() {return null;}
};
  1. lambda演示
private static void supplierDemo() {// 供给型函数Supplier<String> supplier = () -> "supplier 供给型函数 无参有返";System.out.println(supplier.get());
}

3. Function<T, R> 函数型接口

  1. 匿名内部类实现
// 函数型接口
Function<String, Integer> function = new Function<String, Integer>() {@Overridepublic Integer apply(String s) {return null;}
};
  1. lambda演示
private static void functionDemo() {// 函数型接口Function<String, Integer> function = s -> {System.out.println("这是有参有返回的函数式接口!\t" + s);return 666;};System.out.println(function.apply("hello function!"));
}

4. Predicate<T> 断定型接口

  1. 匿名内部类实现
// 断定型接口
Predicate<String> predicate = new Predicate<String>() {// 参数是泛型 返回是boolean// 调用test方法@Overridepublic boolean test(String s) {return false;}
};
  1. lambda演示
private static void predicateDemo() {// 方法引用 判断输入的字符串 是否为空Predicate<String> predicate = String::isEmpty;System.out.println(predicate.test("hhh"));
}

5. 四大接口总结

Java四大函数式接口相关推荐

  1. Java 内置核心四大函数式接口

    在java.util.function包内 , 有Java 内置核心四大函数式接口,可以使用lambda表达式 1.函数型接口(有一个输入,有一个输出) public class Demo1 {pub ...

  2. 学习 Java 8 - 函数式接口 Lambda

    学习 Java 8 - 函数式接口 Java 8 引入了函数式接口的概念.函数式接口其实就是只包含一个抽象方法的普通 Java 接口.在没有引入函数式接口之前,我们通常使用内部类和匿名类来实现类似的功 ...

  3. 高级JAVA - 利用函数式接口实现通用的取并集/交集/差集进阶版

    在前文(高级JAVA - 利用函数式接口实现通用的取并集/交集/差集)中我们实现了利用函数式接口获取交集/差集 , 但是只能全部生成 , 假如我们只需要一个交集的话 , 所有代码仍然会执行一次 . 比 ...

  4. java中函数式接口的使用

    java中函数式接口的使用 一.自己创建的函数式接口 1.1 概念 只存在一个抽象方法的接口. 1.2 使用步骤: 1.创建函数式接口,创建格式参照使用格式. 2.创建一个实例类 3.在实例类中使用函 ...

  5. java8 四大函数式接口 和 用于数据处理的 stream流 使用详解

    文章目录 Stream 使用示例 四大函数式接口 Function 功能型接口 Consumer 消费型接口 Supplier 提供型接口 Predicate 断言型接口 常用 api stream, ...

  6. Java之函数式接口(FunctionalInterface)

    Java之函数式接口(FunctionalInterface) 1. FunctionalInterface是什么? FunctionalInterface 中文称之为 函数式接口.是Java新特性之 ...

  7. Java JDK1.8新特性之四大函数式接口

    JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...

  8. 【Java】函数式接口与Lambda表达式

    函数式接口--@FunctionalInterface Code @FunctionalInterface interface IService {void say(String message); ...

  9. 高级JAVA - 利用函数式接口实现通用的取并集/交集/差集

    package com.xing.dto;import com.xing.common.utils.XDataUtil; import lombok.Data;import java.util.Arr ...

最新文章

  1. 支撑亿级用户“刷手机”​,百度Feed流背后的新技术装备有多牛?
  2. 2021年自然语言处理学习路线!
  3. 华为发布《自动驾驶网络解决方案白皮书》
  4. c语言未结束的引用标识符,2015年9月计算机二级《C语言》高分突破模拟卷(4)
  5. 修改MS SQL2000数据库的所有者,很实用
  6. mysql 中文列索引_MYSQL多列索引
  7. linux c之通过管道实现兄弟间进程通信:
  8. Thread的run()与start()的区别
  9. 在Ubuntu 18.04系统中使用Netplan工具配置网络
  10. C++设计模式实现--职责链(Chain of Responsibility)模式
  11. CASS删除分幅后图框内部十字丝
  12. 用printf 输出各种数据格式(包含示例代码)
  13. C#正则表达式(来源:侧身向南边博客)
  14. java barchart_Bar Chart
  15. 【CF724F】Uniformly Branched Trees 动态规划
  16. 详解sklearn——CountVectorizer
  17. java实现销售预测算法,预测5天销售
  18. 【洛谷】P1067 多项式输出【模拟】
  19. windows 7 x64 下的 System Call
  20. 大象喝水编程c语言,OpenJudge计算概论-大象喝水

热门文章

  1. 前端学习(294):rem小实例
  2. 第十四期: 拥有7000多万店铺和10多亿件商品的微店如何打造AI系统?
  3. 第三十三期:使用wireshark抓包分析-抓包实用技巧
  4. 62 getproperty对象
  5. InnoDB 事务/锁/多版本分析?你了解多少?
  6. mongo:(1)nosql简介
  7. 实例9:python
  8. 算法之快速排序(递归和非递归)
  9. oracle 添加字段
  10. NetCore 依赖注入之服务之间的依赖关系