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;
    }
相关推荐
Yvemil72 分钟前
RabbitMQ 入门到精通指南
开发语言·后端·ruby
潘多编程12 分钟前
Java中的状态机实现:使用Spring State Machine管理复杂状态流转
java·开发语言·spring
_阿伟_31 分钟前
SpringMVC
java·spring
代码在改了37 分钟前
springboot厨房达人美食分享平台(源码+文档+调试+答疑)
java·spring boot
冷静 包容1 小时前
C语言学习之 没有重复项数字的全排列
c语言·开发语言·学习
碳苯1 小时前
【rCore OS 开源操作系统】Rust 枚举与模式匹配
开发语言·人工智能·后端·rust·操作系统·os
wclass-zhengge1 小时前
数据结构篇(绪论)
java·数据结构·算法
何事驚慌1 小时前
2024/10/5 数据结构打卡
java·数据结构·算法
结衣结衣.1 小时前
C++ 类和对象的初步介绍
java·开发语言·数据结构·c++·笔记·学习·算法
学习使我变快乐1 小时前
C++:静态成员
开发语言·c++