JAVA java8中内置的四大核心接口

Consumer:消费型接口

方法:void accept(T t)

dart 复制代码
	private static void test01(){
        happy(50000,(money)-> System.out.println("zrx将来月薪"+money+"元"));
    }
    public static void happy(double money, Consumer<Double> com){
        com.accept(money);
    }

函数式接口作为方法参数

Supplier :供给型接口

方法:T get();

dart 复制代码
    //产生指定个数个整数,并放入集合中
    private static void test02(){
        List<Integer> list = getNumList(10,()-> (int)(Math.random()*100));
        for (Integer i : list) {
            System.out.print(i+" ");
        }
    }
    public static List<Integer> getNumList(int num, Supplier<Integer> sup) {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            list.add(sup.get());
        }
        return list;
    }

Function<T,R> :函数型接口

方法:R apply(T t);

dart 复制代码
//用于处理字符串
    public static void test03(){
        System.out.println("====================");
        String s = strHandler("abcdefghi", (str) -> str.substring(2, 4));
        System.out.println(s);
        String s1 = strHandler("abcdefghi", str -> str.toUpperCase());
        System.out.println(s1);
        String s2 = strHandler("ABCDEFG", str -> str.toLowerCase());
        System.out.println(s2);
        String s3 = strHandler("\t\t\t   str\t   ", str -> str.trim());
        System.out.println(s3);
        System.out.println("====================");
    }
    public static String strHandler(String str, Function<String,String> fun){
        return fun.apply(str);
    }

Predicate :断言型接口

方法:boolean test(T t)

dart 复制代码
    //满足条件的字符串放入集合中
    private static void test04() {
        List<String> love = Arrays.asList(
                "Hello01", "yao", "jing", "yu", "❤", "zhang", "rui", "xu"
        );
        List<String> list = filterStr(love,str->str.length()<=5);
        for (String s : list) {
            System.out.print(s+" ");
        }
    }
    public static List<String> filterStr(List<String> list, Predicate<String> pre){
        ArrayList<String> list1 = new ArrayList<>();
        for (String s : list) {
            if(pre.test(s)){
                list1.add(s);
            }
        }
        return list1;
    }
相关推荐
AI人工智能+电脑小能手41 分钟前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
来杯@Java2 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·mybatis·课程设计
卷毛的技术笔记2 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥2 小时前
匿名函数 lambda + 高阶函数
java·python·算法
isyangli_blog2 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008113 小时前
FastAPI APIRouter
开发语言·python
Benszen3 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆3 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木3 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
adrninistrat0r3 小时前
Java调用链MCP分析工具
java·python·ai编程