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;
    }
相关推荐
代码小鑫11 分钟前
A031-基于SpringBoot的健身房管理系统设计与实现
java·开发语言·数据库·spring boot·后端
湖南罗泽南19 分钟前
Windows C++ TCP/IP 两台电脑上互相传输字符串数据
c++·windows·tcp/ip
五味香20 分钟前
Linux学习,ip 命令
linux·服务器·c语言·开发语言·git·学习·tcp/ip
欧阳枫落25 分钟前
python 2小时学会八股文-数据结构
开发语言·数据结构·python
小奥超人32 分钟前
PPT技巧:如何合并PPT文件?
windows·经验分享·microsoft·powerpoint·办公技巧
何曾参静谧33 分钟前
「QT」文件类 之 QTextStream 文本流类
开发语言·qt
monkey_meng36 分钟前
【Rust类型驱动开发 Type Driven Development】
开发语言·后端·rust
落落落sss44 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
我救我自己44 分钟前
UE5运行时创建slate窗口
java·服务器·ue5
2401_853275731 小时前
ArrayList 源码分析
java·开发语言