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 相关文章推荐
SpringBoot集成Redis,并自定义对象序列化操作
Jun 22 Java/Android
详解Java分布式事务的 6 种解决方案
Jun 26 Java/Android
详解Java ES多节点任务的高效分发与收集实现
Jun 30 Java/Android
swagger如何返回map字段注释
Jul 03 Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Aug 02 Java/Android
SpringBoot中HttpSessionListener的简单使用方式
Mar 17 Java/Android
Java 超详细讲解hashCode方法
Apr 07 Java/Android
Spring Boot配合PageHelper优化大表查询数据分页
Apr 20 Java/Android
Java存储没有重复元素的数组
Apr 29 Java/Android
Android中View.post和Handler.post的关系
Jun 05 Java/Android
Java实现简单小画板
Jun 10 Java/Android
HttpClient实现文件上传功能
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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
详解php的socket通信
2015/08/11 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python 常用的安装Module方式汇总
2017/05/06 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
党员先进事迹材料
2014/12/19 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书