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 相关文章推荐
教你用Java Swing实现自助取款机系统
Jun 11 Java/Android
JavaWeb 入门篇(3)ServletContext 详解 具体应用
Jul 16 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
SpringBoot整合Mybatis Generator自动生成代码
Aug 23 Java/Android
Java 超详细讲解设计模式之中的抽象工厂模式
Mar 25 Java/Android
Spring Boot DevTools 全局配置学习指南
Mar 31 Java/Android
Spring Boot 底层原理基础深度解析
Apr 03 Java/Android
Java 多线程协作作业之信号同步
May 11 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
May 30 Java/Android
SpringBoot详解执行过程
Jul 15 Java/Android
OpenFeign实现远程调用
Aug 14 Java/Android
Spring boot实现上传文件到本地服务器
Aug 14 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写MySQL数据 实现代码
2009/06/15 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
python实现图片批量压缩程序
2018/07/23 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
法学毕业生自荐信
2013/11/13 职场文书
应用数学自荐书范文
2013/11/24 职场文书
旷课检讨书大全
2014/01/21 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
离职证明标准格式
2014/09/15 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
2016大学生国家助学贷款承诺书
2016/03/25 职场文书