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 相关文章推荐
分析并发编程之LongAdder原理
Jun 29 Java/Android
如何给HttpServletRequest增加消息头
Jun 30 Java/Android
浅谈resultMap的用法及关联结果集映射
Jun 30 Java/Android
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
Jul 16 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
Java tomcat手动配置servlet详解
Nov 27 Java/Android
java后台调用接口及处理跨域问题的解决
Mar 24 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 Java/Android
Java GUI编程菜单组件实例详解
Apr 07 Java/Android
零基础学java之方法的定义与调用详解
Apr 10 Java/Android
java版 简单三子棋游戏
May 04 Java/Android
SpringBoot详解执行过程
Jul 15 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
Element-UI+Vue模式使用总结
2020/01/02 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
浅析Python函数式编程
2018/10/06 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
体育教学随笔感言
2014/02/24 职场文书
医师定期考核实施方案
2014/05/07 职场文书
办理房产证委托书
2014/09/18 职场文书
入股合作协议书
2014/10/12 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers