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;
    }
相关推荐
冷雨夜中漫步5 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
JH30736 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
m0_736919107 小时前
C++代码风格检查工具
开发语言·c++·算法
Coder_Boy_7 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934737 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
玉梅小洋7 小时前
Windows 10 Android 构建配置指南
android·windows
invicinble7 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟8 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖8 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_763472468 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法