Java常用函数式接口总结


Posted in Java/Android onJune 29, 2021

四大函数式接口

新时代的程序员:lambda 表达式,链式编程,函数式接口,Stream 流式计算

函数式接口: 只有一个方法的接口

@FunctionalInterface
public interface Runnable {

    public abstract void run();
}
//超级多FunctionalInterface
//简化编程模型,在新版本的框架底层大量应用!
//foreach(消费者类型的函数式接口)

Java常用函数式接口总结

代码测试:

Java常用函数式接口总结

Function 函数式接口

package com.function;


import java.util.function.Function;

/**
 * Function 函数型接口,有一个输入参数,有一个输出
 * 只要是函数型接口 可以 用lambda 表达式简化
 */
public class Demo01 {


    public static void main(String[] args) {
        //工具类:输出输入的值
//      Function function =  new Function<String,String>() {
//            @Override
//            public String apply(String o) {
//                return o;
//            }
//        };
        //System.out.println(function .apply("asd"));
    Function<String,String> function= (str)->{return str;};
    System.out.println(function.apply("asd"));
    }
}

输出结果:asd

断定型接口:有一个输入参数,返回值只能是布尔值!

Java常用函数式接口总结

package com.function;


import java.util.function.Predicate;

/**
 * 断定型接口,有一个输入参数,返回值只能是布尔值!
 */
public class Demo02 {


    public static void main(String[] args) {
        //判断字符串是否为空
//        Predicate<String> predicate = new Predicate<String>() {
//            @Override
//            public boolean test(String str) {
//                return str.isEmpty();
//            }
//        };
        Predicate<String> predicate =(str)->{
            return str.isEmpty();
        };
        System.out.println(predicate.test("asd"));

    }
}

输出结果:false

Consumer 消费型接口

Java常用函数式接口总结

package com.function;

import java.util.function.Consumer;

/**
 * Consumer 消费型接口: 只有输入,没有返回值
 */
public class Demo03 {


    public static void main(String[] args) {
//        Consumer<String> consumer = new Consumer<String>() {
//            @Override
//            public void accept(String str) {
//                System.out.println(str);
//            }
//        };
        //函数式接口
        Consumer<String> consumer = (str)->{
            System.out.println(str);
        };
        consumer.accept("ssssssssssssssss");

    }
}

输出结果:sssssssssssss

list.foreach 其实也是用的Consumer,自己写的例子:

//有入参没有返回值
        list.forEach(x->{
            System.out.println(x);
        });

有入参,没有返回值!

Supplier 供给型接口

Java常用函数式接口总结

package com.function;

import java.util.function.Supplier;

/**
 * Supplier 供给型接口,没有参数,只有返回值
 */
public class Demo04 {


    public static void main(String[] args) {
//        Supplier<String> supplier = new Supplier<String>() {
//            @Override
//            public String get() {
//                System.out.println("Get");
//                return "1024";
//            }
//        };
        Supplier<String> supplier = () ->{
          return "1024";
        };
        System.out.println(supplier.get());
    }
}

输出结果:1024

总结

函数型接口 :有入参,又返回值断定型接口: 有入参,返回布尔值消费型接口: 有入参,没有返回值供给型接口: 无入参,有返回值

到此这篇关于Java常用函数式接口总结的文章就介绍到这了,更多相关Java函数式接口内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
JVM入门之类加载与字节码技术(类加载与类的加载器)
Jun 15 Java/Android
分析设计模式之模板方法Java实现
Jun 23 Java/Android
spring cloud 配置中心native配置方式
Sep 25 Java/Android
关于springboot配置druid数据源不生效问题(踩坑记)
Sep 25 Java/Android
Java实现房屋出租系统详解
Oct 05 Java/Android
java executor包参数处理功能 
Feb 15 Java/Android
使用Java去实现超市会员管理系统
Mar 18 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
Java 使用类型为Object的变量指向任意类型的对象
Apr 13 Java/Android
Java由浅入深通关抽象类与接口(下篇)
Apr 26 Java/Android
SpringBoot使用ip2region获取地理位置信息的方法
Jun 21 Java/Android
分析并发编程之LongAdder原理
SpringBoot整合JWT的入门指南
jackson json序列化实现首字母大写,第二个字母需小写
Java数组与堆栈相关知识总结
分析JVM源码之Thread.interrupt系统级别线程打断
Jun 29 #Java/Android
Jackson 反序列化时实现大小写不敏感设置
Jun 29 #Java/Android
Maven学习----Maven安装与环境变量配置教程
You might like
PHP 选项及相关信息函数库
2006/12/04 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
JS自动缩小超出大小的图片
2012/10/12 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
python学习数据结构实例代码
2015/05/11 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
快速了解Python中的装饰器
2018/01/11 Python
Python合并多个Excel数据的方法
2018/07/16 Python
详解Python发送email的三种方式
2018/10/18 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
如何理解Python中包的引入
2020/05/29 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
Python requests接口测试实现代码
2020/09/08 Python
Shell脚本如何向终端输出信息
2014/04/25 面试题
高中生校园生活自我评价
2013/09/19 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
汉语言文学职业规划
2014/02/14 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
python编程项目中线上问题排查与解决
2021/11/01 Python
Python中的socket网络模块介绍
2022/07/23 Python