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. echart 多柱图只显示部分数据标签_2分钟上手、3小时学会无代码软件开发---Echarts数据可视化...
  2. 实战1--应用EL表达式访问JavaBean的属性
  3. 学习笔记——ArrayList总结
  4. [开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报
  5. FFMPEG设置 cbr讨论
  6. hive 把mysql语句执行_R分别连接mysql hive执行操作
  7. Redis bind用法
  8. windows 上面的tensorflow-GPU、cuda、cudnn 安装
  9. Win10 安装 JDK1.8 及配置环境变量
  10. 简述对CAN协议栈的理解
  11. S5P6818开发板移植OV5640摄像头
  12. 弹窗代码大全 弹窗广告代码
  13. Correct way to wait for VBLANK on windows 10 in windowed mode
  14. 1000句英语经典口语(10)
  15. 透明小时钟开发流程与总结
  16. windows程序窗口
  17. HCIE-Security Day47:AC准入控制MAC
  18. 如何破解周围WiFi,查看密码
  19. Stochastically Stable Negativity for Analytically Linear Subalgebras——ShaneZhang
  20. XPS学习笔记(一)

热门文章

  1. 前端学习(1045):todolist本地存储加载到页面
  2. 前端学习(171):注释元素
  3. 歌谣致学习编程的你们
  4. html:(21):重置按钮和label标签
  5. 玩转oracle 11g(16):命令学习4
  6. Qt treeWidget 查找指定字段内容的条目并跳转到该条目
  7. git pull提示当前branch没有跟踪信息
  8. mysql 查看锁_SQL-mysql锁等待与死锁
  9. opencv支持python3吗_Python3.4+opencv3
  10. flume记录(2)监控文件和目录,对hdfs操作