zoukankan      html  css  js  c++  java
  • java8的4大核心函数式接口

    //java8的4大核心函数式接口
    //1.Consumer<T>:消费性接口
    //需求:
    public void happy(double money, Consumer<Double> consumer){
    consumer.accept(money);
    }
    @Test
    public void test(){
    happy(1000,(e)-> System.out.println("happy消费了"+ e +"元"));
    }
    //2.Supplier<T> 供给型接口
    //T get();
    //需求:产生一定数量整数,并放进集合中
    public List<Integer> getList(int size, Supplier<Integer> supplier){
    List<Integer> list = new ArrayList<>();
    for (int i = 0; i < size; i++) {
    Integer num = supplier.get();
    list.add(num);
    }
    return list;
    }

    @Test
    public void test2(){
    List<Integer> list = getList(10,()->(int)(Math.random()*100));
    for (Integer num :
    list) {
    System.out.println(num);
    }
    }

    //3.函数型接口
    //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 strTrim = strHandler(" xsjifcdsnkjfhs ",(e)->e.trim());
    System.out.println(strTrim);
    }
    //4.Predicate 断言型接口
    //boolean test(T t)
    //将满足条件的字符串放进集合
    public List<String> getNewList(List<String> list , Predicate<String> pre){
    List<String> newList = new ArrayList<>();
    for (String str :
    list) {
    if(pre.test(str)){
    newList.add(str);
    }

    }
    return newList;
    }
    @Test
    public void test4(){
    List<String> list = java.util.Arrays.asList("adsj","xjsai","sdjasio","ws");
    List<String> li = getNewList(list,(s)->s.length()>3);
    for (String str :
    li) {
    System.out.println(str);
    }

    }
  • 相关阅读:
    数列分块入门 1-8
    最远点对 [线段树+树的直径]
    实验室外的攻防战 UOJ#180 [树状数组]
    二叉搜索树 [四边形不等式优化区间dp]
    树上的等差数列 [树形dp]
    序列 [树状数组+离散化]
    ATcoder1983 BBQ Hard
    8.18日报
    8.17日报
    8.16日报
  • 原文地址:https://www.cnblogs.com/yunqing/p/9221117.html
Copyright © 2011-2022 走看看