Java四大函数式接口
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> 消费型接口
- 匿名内部类实现
// 消费型函数
Consumer<String> consumer = new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println("come in consumer type function..." + s);}
};
- lambda演示
private static void consumerDemo() {Consumer<String> consumer = str -> {System.out.println("消费型函数 有参无返");System.out.println(str);};// 调用consumber接口中的函数consumer.accept("bitQian666");
}
2. Supplier <R> 供给型接口
- 匿名内部类实现
// 供给型函数
Supplier<String> supplier = new Supplier<String>() {@Overridepublic String get() {return null;}
};
- lambda演示
private static void supplierDemo() {// 供给型函数Supplier<String> supplier = () -> "supplier 供给型函数 无参有返";System.out.println(supplier.get());
}
3. Function<T, R> 函数型接口
- 匿名内部类实现
// 函数型接口
Function<String, Integer> function = new Function<String, Integer>() {@Overridepublic Integer apply(String s) {return null;}
};
- 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> 断定型接口
- 匿名内部类实现
// 断定型接口
Predicate<String> predicate = new Predicate<String>() {// 参数是泛型 返回是boolean// 调用test方法@Overridepublic boolean test(String s) {return false;}
};
- lambda演示
private static void predicateDemo() {// 方法引用 判断输入的字符串 是否为空Predicate<String> predicate = String::isEmpty;System.out.println(predicate.test("hhh"));
}
5. 四大接口总结
Java四大函数式接口相关推荐
- Java 内置核心四大函数式接口
在java.util.function包内 , 有Java 内置核心四大函数式接口,可以使用lambda表达式 1.函数型接口(有一个输入,有一个输出) public class Demo1 {pub ...
- 学习 Java 8 - 函数式接口 Lambda
学习 Java 8 - 函数式接口 Java 8 引入了函数式接口的概念.函数式接口其实就是只包含一个抽象方法的普通 Java 接口.在没有引入函数式接口之前,我们通常使用内部类和匿名类来实现类似的功 ...
- 高级JAVA - 利用函数式接口实现通用的取并集/交集/差集进阶版
在前文(高级JAVA - 利用函数式接口实现通用的取并集/交集/差集)中我们实现了利用函数式接口获取交集/差集 , 但是只能全部生成 , 假如我们只需要一个交集的话 , 所有代码仍然会执行一次 . 比 ...
- java中函数式接口的使用
java中函数式接口的使用 一.自己创建的函数式接口 1.1 概念 只存在一个抽象方法的接口. 1.2 使用步骤: 1.创建函数式接口,创建格式参照使用格式. 2.创建一个实例类 3.在实例类中使用函 ...
- java8 四大函数式接口 和 用于数据处理的 stream流 使用详解
文章目录 Stream 使用示例 四大函数式接口 Function 功能型接口 Consumer 消费型接口 Supplier 提供型接口 Predicate 断言型接口 常用 api stream, ...
- Java之函数式接口(FunctionalInterface)
Java之函数式接口(FunctionalInterface) 1. FunctionalInterface是什么? FunctionalInterface 中文称之为 函数式接口.是Java新特性之 ...
- Java JDK1.8新特性之四大函数式接口
JDK 1.8的一些新特性 四大核心函数式接口(Consumer.Predicate.Supplier.Function),结合lambda表达式 import java.util.ArrayList ...
- 【Java】函数式接口与Lambda表达式
函数式接口--@FunctionalInterface Code @FunctionalInterface interface IService {void say(String message); ...
- 高级JAVA - 利用函数式接口实现通用的取并集/交集/差集
package com.xing.dto;import com.xing.common.utils.XDataUtil; import lombok.Data;import java.util.Arr ...
最新文章
- echart 多柱图只显示部分数据标签_2分钟上手、3小时学会无代码软件开发---Echarts数据可视化...
- 实战1--应用EL表达式访问JavaBean的属性
- 学习笔记——ArrayList总结
- [开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报
- FFMPEG设置 cbr讨论
- hive 把mysql语句执行_R分别连接mysql hive执行操作
- Redis bind用法
- windows 上面的tensorflow-GPU、cuda、cudnn 安装
- Win10 安装 JDK1.8 及配置环境变量
- 简述对CAN协议栈的理解
- S5P6818开发板移植OV5640摄像头
- 弹窗代码大全 弹窗广告代码
- Correct way to wait for VBLANK on windows 10 in windowed mode
- 1000句英语经典口语(10)
- 透明小时钟开发流程与总结
- windows程序窗口
- HCIE-Security Day47:AC准入控制MAC
- 如何破解周围WiFi,查看密码
- Stochastically Stable Negativity for Analytically Linear Subalgebras——ShaneZhang
- XPS学习笔记(一)
热门文章
- 前端学习(1045):todolist本地存储加载到页面
- 前端学习(171):注释元素
- 歌谣致学习编程的你们
- html:(21):重置按钮和label标签
- 玩转oracle 11g(16):命令学习4
- Qt treeWidget 查找指定字段内容的条目并跳转到该条目
- git pull提示当前branch没有跟踪信息
- mysql 查看锁_SQL-mysql锁等待与死锁
- opencv支持python3吗_Python3.4+opencv3
- flume记录(2)监控文件和目录,对hdfs操作