首页 > 编程语言 >java 函数式编程

java 函数式编程

时间:2025-01-17 17:23:39浏览次数:1  
标签:function java 函数 arrayList 编程 util import public

1 函数式创建对象

new接口或抽象类时在花括号里面补全缺失的函数体可以创建匿名子类对象(非子类匿名对象)
new普通类时在花括号里面直接重写方法可以创建匿名子类对象(非子类匿名对象)

2 lumbda表达式创建对象

  • 在函数式创建对象的基础上当接口或抽象类中仅有一个方法缺少函数体时可以使用lumbda表达式创建对象:(/形参/) -> {/函数体/}
  • 当仅有一个形参时可以简化lumbda:/形参/ -> {/函数体/}
  • 当仅函数体仅有一条语句可以简化lumbda:(/形参/) -> /函数体/

3 常用的函数式接口

  • public interface Consumer //1个入参,0个返回值
  • public interface Predicate //1个入参,1个布尔返回值
  • public interface Function<T, R> //1个入参,1个返回值
  • public interface Supplier //0个入参,1个返回值
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class M1 {
    public static void main(String[] args) throws ParseException {

        ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(new String[] {"aaa","bbb","ccc"}));

        Consumer<String> consumer = new Consumer<String>() {
            @Override
            public void accept(String s) {
                arrayList.add(s);
            }
        };
        consumer.accept("ddd");
        System.out.println(Arrays.toString(arrayList.toArray()));

        Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return arrayList.contains(s);
            }
        };
        boolean b = predicate.test("aaa");
        System.out.println(b);

        Function<String,Integer> function = new Function<String, Integer>() {
            @Override
            public Integer apply(String s) {
                return arrayList.indexOf(s);
            }
        };
        Integer i = function.apply("aaa");
        System.out.println(i);

        Supplier<String> supplier = new Supplier<String>() {
            @Override
            public String get() {
                return arrayList.get(0);
            }
        };
        String s = supplier.get();
        System.out.println(s);
    }
}
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class M2 {
    public static void main(String[] args) throws ParseException {

        ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(new String[] {"aaa","bbb","ccc"}));
        
        Consumer<String> consumer = s -> arrayList.add(s);
        consumer.accept("ddd");
        System.out.println(Arrays.toString(arrayList.toArray()));
        
        Predicate<String> predicate = s -> arrayList.contains(s);
        boolean b = predicate.test("aaa");
        System.out.println(b);
        
        Function<String,Integer> function = s -> arrayList.indexOf(s);
        Integer i = function.apply("aaa");
        System.out.println(i);

        Supplier<String> supplier = () -> arrayList.get(0);
        String s = supplier.get();
        System.out.println(s);
    }
}
[aaa, bbb, ccc, ddd]
true
0
aaa

标签:function,java,函数,arrayList,编程,util,import,public
From: https://www.cnblogs.com/gaoguanghui/p/18617789

相关文章

  • java基础Day3 java语法
    java语法新建一个空项目,在项目中新建一个java模块文件菜单中打开项目结构,SDK有报红,要手动选,语言级别也要和SDK对应注释//单行注释/*多行注释*//**文档注释*@DescriptionHelloWorld*@Authortse121*/标识符关键字Demo01所有的标识符都应该以大小写字......
  • 编程语言也给你挑上了
    现在的实习生都这么趾高气扬啦,会个java给你骄傲上了?上月组里调来了个实习生,说是上个导师训不服他。据说还是老板看上的可塑之才,有过独立游戏的开发经验。我倒是看看是个什么天才。听前科室说,这小子规范一塌糊涂。代码一堆嵌套,能省的全省了,隔着大肠包小肠呢,说自己一直都这么写......
  • Java基于SpringBoot+Vue的酒店管理系统(用户、酒店管理员、管理员)
    所需该项目可以在最下面查看联系方式,为防止迷路可以收藏文章,以防后期找不到项目介绍Java基于SpringBoot+Vue的酒店管理系统(用户、酒店管理员、管理员)系统实现截图技术栈介绍JDK版本:jdk1.8+编程语言:java框架支持:springboot数据库:mysql版本不限数据库工具......
  • Java基于SpringBoot+Vue的高校教室资源管理平台的设计与实现(四端:学生、教室、维护员、
    所需该项目可以在最下面查看联系方式,为防止迷路可以收藏文章,以防后期找不到项目介绍Java基于SpringBoot+Vue的高校教室资源管理平台的设计与实现(四端:学生、教室、维护员、管理员)系统实现截图技术栈介绍JDK版本:jdk1.8+编程语言:java框架支持:springboot数据......
  • QObject::moveToThread成员函数
    头文件包含......
  • zig 函数
    第四章:函数4.1函数定义和调用基本函数定义conststd=@import("std");//基本函数定义pubfnadd(a:i32,b:i32)i32{returna+b;}//无返回值的函数pubfnprintMessage(message:[]constu8)void{std.debug.print("{s}\n",.{message});}......
  • 如何入门编程
    编程入门之路:从新手到开发者编程就像学习一门新语言,最开始总是有些让人畏惧。但当你开始理解那些字母组合的真正含义时,便会领悟到其美妙之处。那么,你准备好踏上这条旅程了吗?今天,我们将一起探讨如何顺利入门编程,打下坚实的基础,最终成为一名出色的开发者。选择合适的编程语......
  • Java 17 新特性详解与代码示例
    ......
  • (持续更新)零基础入门 Java 之初始二维数组
    ......
  • 黑马Java面试教程_P1_导学与准备篇
    系列博客目录文章目录系列博客目录导学Why?举例准备篇企业是如何筛选简历的(筛选简历的规则)HR如何筛选简历部门负责人筛选简历简历注意事项简历整体结构个人技能该如何描述项目该如何描述应届生该如何找到合适的练手项目项目来源找到项目后,如何深入学习项目,从而可......