zoukankan      html  css  js  c++  java
  • java 8内置的四大核心函数式接口

    Consumer<T> : 消费性接口

    返回值  void accept(T t);

    public void happy(double money, Consumer<Double> con) {
            con.accept(money);
        }
        @Test
        public void test1() {
            happy(1999.99, m -> System.out.println("吃饭花了" + m + "元"));
        }

    Supplier<T> :供给型接口

    返回值   T get();

    //产生特定个数整数,放在集合中
        public List<Integer> getList(int num, Supplier<Integer> sp) {
            List<Integer> list = new ArrayList<>();
            for (int i = 0; i < num; i++) {
                Integer n = sp.get();
                list.add(n);
            }
            return list;
        }
    
        @Test
        public void test2() {
            List<Integer> list = getList(13, () -> (int) (Math.random() * 100));
            for (Integer num : list
            ) {
                System.out.println(num);
            }
        }

    Function<T,R>函数式接口

    返回值    R apply<T t>

    public String strHandler(String str, Function<String, String> fun) {
            return fun.apply(str);
        }
        @Test
        public void test3() {
            String s = strHandler("			 人呢   ", t -> t.trim());
            System.out.println(s);
    
            String s2 = strHandler(" 人呢123456   ", t -> t.trim().substring(2, 4));
            System.out.println(s2);
        }

    Predicate<T> 断言型接口

    返回值  boolean test(T t);

    //需求将满足条件的字符串放进集合
        public List<String> strList(List<String> list, Predicate<String> pre) {
            List<String> list1 = new ArrayList<>();
            for (String li : list
            ) {
                if (pre.test(li)) {
                    list1.add(li);
                }
            }
            return list1;
        }
        @Test
        public void test4() {
            List<String> list = Arrays.asList("123", "11", "小明上学", "ok");
            List<String> stringList = strList(list, pr -> pr.length() > 2);
            for (String s : stringList
            ) {
                System.out.println(s);
            }
        }
  • 相关阅读:
    语音识别算法阅读之CTC
    语音识别模型阅读之CLDNN
    声纹识别算法阅读之self-attentive x-vector
    Git链接两个远程仓库
    tortoisegit提交不到远程库问题解决记录
    安装 Git 命令之后,本地的工作区中的文件没有小图标解决办法
    .NET CLS(Common Language System)简介
    .NET CTS(Common Type System)简介
    C# 中间语言
    .NET 程序执行流程
  • 原文地址:https://www.cnblogs.com/wangxue1314/p/12763854.html
Copyright © 2011-2022 走看看