您当前的位置: 首页 > 

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

jdk1.8新特性——四大内置核心函数式接口

小志的博客 发布时间:2021-08-25 22:25:41 ,浏览量:0

目录
    • 一、jdk1.8内置的四大核心函数式接口
    • 二、消费型函数式接口示例
    • 三、供给型函数式接口示例
    • 四、函数型函数式接口示例
    • 五、断言型函数式接口示例

一、jdk1.8内置的四大核心函数式接口
  • Consumer : 消费型函数式接口,指方法有参数但是无返回值(即有去无回)。

    void accept(T t);
    
  • Supplier : 供给型函数式接口,指方法无参数但是有返回值(即只知道获取返回值)。

     T get();
    
  • Function : 函数型函数式接口,指方法有参数且有返回值(即有去有回)。

     R apply(T t);
    
  • Predicate : 断言型函数式接口,指方法有参数且返回值为boolean类型。

    boolean test(T t);
    
二、消费型函数式接口示例

1、以Consumer接口类中的accept方法举例 在这里插入图片描述 2、示例代码如下:

package com.xz.springboot_java8.day4;
import java.util.function.Consumer;
/**
 * @description: 消费型函数式接口示例(方法有参数但是无返回值)
 * @author: xz
 */
public class Test1 {
    public static void main(String[] args) {
        getConsumer(1000,(x)-> System.out.println("xz游戏充值消费了【"+x+"】元"));
    }

    /**
     * @param money 消费金额
     * @param consumer 函数式接口
     */
    public static  void getConsumer(double money, Consumer consumer){
        consumer.accept(money);
    }
}

3、运行main函数,输出结果如下图:

在这里插入图片描述

三、供给型函数式接口示例

1、以Supplier接口类中的get方法举例 在这里插入图片描述 2、示例代码如下:

package com.xz.springboot_java8.day4;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
/**
 * @description: 供给型函数式接口(方法无参数但是有返回值)
 * @author: xz
 */
public class Test2 {
    public static void main(String[] args) {
        List listNumber = getListNumber(20, () -> (int)(Math.random() * 100));
        for(Integer num:listNumber){
            System.out.println(num);
        }
    }

    /**
     * 生产指定个数的整数,并放入集合中
     * @param number
     * @param supplier
     * @return
     */
    public static List getListNumber(int number, Supplier supplier){
        List list = new ArrayList();
        for(int i=0;ix.substring(2, 5));
        System.out.println(str);
    }

    /**
     * @param str 传入的字符串
     * @param function
     * @return
     */
    public static String getStrHandler(String str, Function function){
        return function.apply(str);
    }

}

3、运行main函数,输出结果如下图: 在这里插入图片描述

五、断言型函数式接口示例

1、以Predicate接口类中的test方法举例 在这里插入图片描述 2、示例代码如下:

package com.xz.springboot_java8.day4;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
/**
 * @description:  断言型函数式接口(方法有参数且返回值为boolean类型)
 * @author: xz
 */
public class Test4 {
    public static void main(String[] args) {
        List list = Arrays.asList("java", "jdk", "jre", "spring");
        List strList = getFilterStr(list, (x) -> x.length() > 3);
        for (String str : strList) {
            System.out.println(str);
        }
    }

    /**
     * 将满足条件的字符串,放入集合中
     * @param list
     * @param predicate
     */
    public static List getFilterStr(List list, Predicate predicate){
        List strList = new ArrayList();
        for(String str:list){
            if(predicate.test(str)){
                strList.add(str);
            }
        }
        return strList;
    }
}

3、运行main函数,输出结果如下图: 在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0386s