• 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);
            }
        }
  • 相关阅读:
    我国大部分地区今晚将上演红色月全食美景[2007828]
    n阶汉诺塔问题(Hanoi)
    NBear中使用WhereClip表示in查询的问题
    web性能测试分析理论篇
    Net类库一览 转
    使用ASP.Net Forms模式实现WebService身份验证
    2005数据源的相关数据绑定
    单位分级,涵闸和人员绑定到树
    ajax,js文件中中文显示成乱码的问题
    WinFom应用程序数据操作技巧
  • 原文地址:https://www.cnblogs.com/wangxue1314/p/12763854.html
Copyright © 2020-2023  润新知