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框架入门之简单介绍SpringBoot框架
Jun 18 Java/Android
Java数据结构之链表相关知识总结
Jun 18 Java/Android
Java基础-封装和继承
Jul 02 Java/Android
mybatis 获取无数据的字段不显示的问题
Jul 15 Java/Android
mybatis3中@SelectProvider传递参数方式
Aug 04 Java/Android
正则表达式拆分url实例代码
Feb 24 Java/Android
关于ObjectUtils.isEmpty() 和 null 的区别
Feb 28 Java/Android
JavaWeb实现显示mysql数据库数据
Mar 19 Java/Android
SpringBoot整合Minio文件存储
Apr 03 Java/Android
Java中Dijkstra(迪杰斯特拉)算法
May 20 Java/Android
Android开发手册Chip监听及ChipGroup监听
Jun 10 Java/Android
详解Flutter自定义应用程序内键盘的实现方法
Jun 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 代码优化的42条建议 推荐
2009/09/25 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
在Python中处理XML的教程
2015/04/29 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
Python中字符串与编码示例代码
2019/05/20 Python
Python笔记之工厂模式
2019/11/20 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
出纳岗位职责模板
2013/11/27 职场文书
星级党支部申报材料
2014/05/31 职场文书
开服装店计划书
2014/08/15 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
整改通知书
2015/04/20 职场文书
盲山观后感
2015/06/11 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python