jdk1.8新特性——四大内置核心函数式接口(代码片段)

小志的博客 小志的博客     2022-12-26     526

关键词:

一、jdk1.8内置的四大核心函数式接口

  • Consumer : 消费型函数式接口,指方法有参数但是无返回值(即有去无回)。

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

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

     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<Double> 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<Integer> listNumber = getListNumber(20, () -> (int)(Math.random() * 100));
        for(Integer num:listNumber)
            System.out.println(num);
        
    

    /**
     * 生产指定个数的整数,并放入集合中
     * @param number
     * @param supplier
     * @return
     */
    public static List<Integer> getListNumber(int number, Supplier<Integer> supplier)
        List<Integer> list = new ArrayList<>();
        for(int i=0;i<number;i++)
            int a=supplier.get();
            list.add(a);
        
        return list;
    

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

四、函数型函数式接口示例

1、以Function接口类中的apply方法举例

2、示例代码如下:

package com.xz.springboot_java8.day4;
import java.util.function.Function;
/**
 * @description: 函数型函数式接口(方法有参数且有返回值)
 * @author: xz
 */
public class Test3 
    public static void main(String[] args) 
        String str=getStrHandler("jdjdkka",(x)->x.substring(2, 5));
        System.out.println(str);
    

    /**
     * @param str 传入的字符串
     * @param function
     * @return
     */
    public static String getStrHandler(String str, Function<String,String> 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<String> list = Arrays.asList("java", "jdk", "jre", "spring");
        List<String> strList = getFilterStr(list, (x) -> x.length() > 3);
        for (String str : strList) 
            System.out.println(str);
        
    

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

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

5.java8新特性_四大内置核心函数式接口

Java8内置的四大核心函数式接口Consumer<T>:消费型接口 voidaccept(Tt)Supplier<T>:供给型接口Tget();Function<T,R>:函数型接口Rapply(Tt)Predicate<T>:段言型接口booleantest(Tt)  查看详情

java8新特性——lambda表达式之四大核心函数式接口&方法/构造器/数组引用(代码片段)

文章目录:1.四大核心函数式接口1.1Consumer:消费型接口1.2Supplier:供给型接口1.3Function:函数型接口1.4Predicate:断言型接口2.方法引用2.1对象::实例方法2.2类::静态方法2.3类::实例方法3.构造器引用4.数组引用1.四大核心函数式接口上... 查看详情

java8新特性——lambda表达式之四大核心函数式接口&方法/构造器/数组引用(代码片段)

文章目录:1.四大核心函数式接口1.1Consumer:消费型接口1.2Supplier:供给型接口1.3Function:函数型接口1.4Predicate:断言型接口2.方法引用2.1对象::实例方法2.2类::静态方法2.3类::实例方法3.构造器引用4.数组引用1.四大核心函数式接口上... 查看详情

jdk1.8新特性之lambda表达式(代码片段)

近期公司的新项目中使用了很多jdk1.8新特性,特来做个小结一.Lambda表达式的使用 lambda表达式也叫函数式编程:Lambda需要函数式接口支持,并且接口中的抽象方法只能有一个函数式接口:接口中只有一个抽象方法的接口,称... 查看详情

jdk1.8新特性之--函数式接口

在上一篇文章中我们介绍了JDK1.8的新特性有以下几项。1.Lambda表达式2.方法引用3.函数式接口4.默认方法5.Stream6.Optional类7.Nashormjavascript引擎8.新的日期时间API9.Base64之前学习了前面两项Lambda表达式,方法引用,这一篇学习函数式接... 查看详情

java8中内置的四大核心函数式接口(代码片段)

java8中内置的四大核心函数式接口Consumer<T>:消费型接口voidaccept(Tt)//Consumer<T>消费型接口publicvoidhappy(doublemoney,Consumer<Double>con)con.accept(money);Supplier<T>:供给型接口Tget();//Supplier<T&g 查看详情

图解jdk1.8新特性(代码片段)

图解jdk1.8新特性(1)函数式接口总结起来就以下几点:如果一个接口要想成为函数接口(函数接口可以直接用lambda方式简化),则必须有且仅有一个抽象的方法(非default和static)可以通过注解@FunctionalInterface注解通过在编译时... 查看详情

009-jdk1.8版本新特性一-展方法,lambda表达式,函数式接口方法引用构造引用(代码片段)

一、JDK1.8名称:Spider(蜘蛛)发布日期:2014-03-18新特性:1.1、扩展方法【接口的默认方法】  Java8允许我们给接口添加一个非抽象的方法实现,只需要使用default关键字即可,这个特征又叫做扩展方法.  在Java中只有单继承,... 查看详情

jdk1.8新特性之lambda表达式(代码片段)

  lambda表达式其实就是指一个匿名函数,应用最广泛的就是匿名内部类。在jdk1.8之前,我们定义一个匿名内部类可能需要写一大坨代码,现在有了lambda之后,可以写的很简洁了。但不是说lambda只能用来简化匿名内部类,从lambda... 查看详情

java8新特性

lambda四大内置核心函数式接口:Consumer<T>:消费性接口  voidaccept(Tt);Suppiler<T>:供给性接口  Tget();Function<T,R>:函数型接口  Rapply(Tt);Predicate<T>:断言型接口  booleantest(Tt);时间和日期得处理:1.Local... 查看详情

jdk1.8新特性——主要内容

目录一、jdk1.8新特性的主要内容二、jdk1.8新特性的优点一、jdk1.8新特性的主要内容Lambda表达式函数式接口方法引用与构造器引用StreamAPI接口中的默认方法与静态方法新时间日期API其他新特性二、jdk1.8新特性的优点速度更快代码更... 查看详情

java8新特性-四大函数式接口(consumersupplierfunctionpredicate)使用样例(代码片段)

文章目录前言一、Consumer:消费型接口二、Supplier:供给型接口三、Function:函数型接口四、Predicate:断言型接口结尾前言函数式接口(FunctionalInterface)是Java8对一类特殊类型的接口的称呼。这类接口只定义了唯一的... 查看详情

java8新特性(代码片段)

java8新特性1.Lambda表达式1.Lambda表达式和方法引用的案例2.Lmabda表达式的6种形式3.Lambda表达式详细实例2.函数式接口1.函数式接口描述2.java内置四大函数式接口3.方法引用与构造器1.方法引用2.构造器引用4.StreamAPI1.StreamAPI说明2.stream实... 查看详情

java8新特性(代码片段)

文章目录Java8新特性Java8新特性简介1、Lambda表达式(重点)2、函数式接口2.1、Java内置四大函数式接口3、方法引用和构造器引用(StreamAPI中用到)3.1、方法引用3.2、构造器引用4、StreamAPI(重点)4.1、强大的... 查看详情

java8新特性(代码片段)

文章目录Java8新特性Java8新特性简介1、Lambda表达式(重点)2、函数式接口2.1、Java内置四大函数式接口3、方法引用和构造器引用(StreamAPI中用到)3.1、方法引用3.2、构造器引用4、StreamAPI(重点)4.1、强大的... 查看详情

jdk1.8新特性

...数式接口类型检查与类型推断2.Lambda表达式函数式编程的特性:闭包与高阶函数:高阶函数可以用另一个函数作为其输入参数,在某些情况下,它甚至可以返回一个函数作为其输出参数。惰性计算:表达式不是... 查看详情

jdk1.8新特性

...数式接口类型检查与类型推断2.Lambda表达式函数式编程的特性:闭包与高阶函数:高阶函数可以用另一个函数作为其输入参数,在某些情况下,它甚至可以返回一个函数作为其输出参数。惰性计算:表达式不是... 查看详情

java8(jdk1.8)新特性(代码片段)

一、Java8(JDK1.8)新特性1、Lamdba表达式2、函数式接口3、方法引用和构造引用4、StreamAPI5、接口中的默认方法和静态方法6、新时间日期API7、OPtional8、其他特性二、java8(JDK1.8)新特性简介1、速度快;2、代码少、简介࿰... 查看详情