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);
    }

    }
  • 相关阅读:
    如何利用c++读取.doc文档
    C++经典面试题(验证你的C++水准)
    与你初识
    VS2005发布项目
    请教一:OpenGL旋转
    数据备份和故障修复文件历史记录
    数据备份和故障修复备份与还原
    使用Windows 8 的“任务计划”令HydraVision更加精彩
    Windows 恢复环境(Windows RE模式)
    Unsupported major.minor version 49.0错误处理
  • 原文地址:https://www.cnblogs.com/yunqing/p/9221117.html
Copyright © 2011-2022 走看看