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实现简易的分词器功能
Jun 15 Java/Android
Spring整合Mybatis的全过程
Jun 28 Java/Android
新手初学Java List 接口
Jul 07 Java/Android
Java使用jmeter进行压力测试
Jul 09 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
springboot+WebMagic+MyBatis爬虫框架的使用
Aug 07 Java/Android
idea以任意顺序debug多线程程序的具体用法
Aug 30 Java/Android
Java 获取Word中所有的插入和删除修订的方法
Apr 06 Java/Android
Java 超详细讲解ThreadLocal类的使用
Apr 07 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
SpringCloud超详细讲解Feign声明式服务调用
Jun 21 Java/Android
springboot 全局异常处理和统一响应对象的处理方式
Jun 28 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中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
JS判断客服QQ号在线还是离线状态的方法
2015/01/13 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
详解jquery和vue对比
2019/04/16 jQuery
React中使用Vditor自定义图片详解
2020/12/25 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
大学生专业个人学习的自我评价
2013/10/26 职场文书
安全生产汇报材料
2014/02/17 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
物业管理工作方案
2014/05/10 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
歌咏比赛主持词
2015/06/29 职场文书
宣传稿格式范文
2015/07/23 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
Java 数组的使用
2022/05/11 Java/Android