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;
    }
相关推荐
2601_949814694 分钟前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端
herinspace4 分钟前
管家婆实用贴-如何分离和附加数据库
开发语言·前端·javascript·数据库·语音识别
ILYT NCTR30 分钟前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
小雅痞37 分钟前
[Java][Leetcode simple] 28. 找出字符串中第一个匹配项的下标
java·开发语言·leetcode
likerhood41 分钟前
java中的不可变类(Immutable)
java·开发语言
Ulyanov1 小时前
《PySide6 GUI开发指南:QML核心与实践》 第一篇:GUI新纪元——QML与PySide6生态系统全景
开发语言·python·qt·qml·雷达电子对抗
淼淼爱喝水1 小时前
ESXi 给 Windows Server 2008 虚拟机添加磁盘教程
windows·esxi·虚拟机
勤自省1 小时前
《RDK X5 ROS 2 Humble 安装与验证:从零到 Hello World》
windows·ubuntu·ssh·ros2
Rust研习社1 小时前
从入门到实践:Rust 异步编程完全指南
开发语言·后端·rust
yaoxin5211231 小时前
389. Java IO API - 获取文件名
java·开发语言·python