• java8新特性—四大内置核心接口


    java8新特性—四大内置核心接口

    四大内置核心接口

    //消费型接口
    Consumer<T>:: vode accept(T t);
    //供给型接口
    Supplier<T>:: T get();
    //函式型接口
    Function<T,R>:: R apply(T t);
    //断言型接口
    Predicate<T>:: boolean test(T t);
    

    消费型接口

     @Test
        public void test() {
            addMoney(20, (m) -> System.out.println(m + 20));
        }
    
        private void addMoney(Integer money, Consumer<Integer> con) {
            con.accept(money);
        }
    

    供给型接口

     @Test
        public void test() {
           List<Integer> list =  getMoney(5, () -> (int) (Math.random() * 5));
            for (Integer integer : list) {
                System.out.println(integer);
            }
        }
    
        private List<Integer> getMoney(Integer nums, Supplier<Integer> sp) {
            List<Integer> list = new ArrayList<Integer>(0);
            for (int i = 0; i < nums; i++) {
                Integer n = sp.get();
                list.add(n);
            }
            return list;
        }
    

    函数式型接口

        @Test
        public void test3() {
            System.out.println(strHandle("  lll lll ccc ccc  ", String::trim));
        }
        private String strHandle(String str, Function<String,String> function) {
           return function.apply(str);
        }
    

    断言型接口

     @Test
        public void test4() {
            System.out.println(filterStr("holle",(e) -> e.equals('l')));
        }
        private Character filterStr(String str, Predicate<Character> pt) {
            char[] chars = str.toCharArray();
            for (char aChar : chars) {
                if (pt.test(aChar)) {
                    return aChar;
                }
            }
            return '';
        }
    

    总结

    1. 有输入并处理,无输出,用消费型接口(Consumer< T >)
    2. 无输入,有输出,用供给型接口(Supplier< T >)
    3. 有输入并有处理输出,用函数式型接口(Function<T,R>)
    4. 无输入,处理判断条件并输出布尔类型(true or false),用断言型接口(Predicate< T >)
  • 相关阅读:
    bzoj1901 Zju2112 Dynamic Rankings
    bzoj3932 [CQOI2015]任务查询系统
    poj2104 K-th Number
    splay模板整理
    bzoj1500 [NOI2005]维修数列
    bzoj3223 Tyvj 1729 文艺平衡树
    bzoj1503 [NOI2004]郁闷的出纳员
    bzoj3224 Tyvj 1728 普通平衡树
    用CSS截断字符串
    发布一款仿天猫产品放大镜JQuery插件
  • 原文地址:https://www.cnblogs.com/Lollipop_Hsu/p/11481766.html
Copyright © 2020-2023  润新知