zoukankan      html  css  js  c++  java
  • java中Lambda表达式相关的四大内置核心函数式接口

    知识点:java8中四大内置核心函数式接口

    /**
    * 1. Consumer<T>:消费型接口
    * void accept(T t);
    *
    * 2. Supplier<T> :供给型接口
    * T get();
    *
    * 3. Function<T,R>: 函数型接口
    * R apply(T t);
    *
    * 4. Predicate<T>: 断言型接口
    * boolean test(T t)
    * **/
    public class TestLambda {

    //1.Consumer<T>:消费型接口 void accept(T t);
    @Test
    public void test(){
    shopping(1000,(x)-> System.out.println("今天购物发了"+x+"元"));
    }
    public void shopping(double money, Consumer<Double> con){
    con.accept(money);
    }

    //2.Supplier<T> :供给型接口 T get();
    @Test
    public void test2(){
    List<Integer> numList=getNumList(3,()->(int)(Math.random()*10));
    for (Integer n:numList
    ) {
    System.out.println(n);
    }
    }
    //产生指定个数的整数,放到集合中并返回
    public List<Integer> getNumList(int num, Supplier<Integer> sup){
    List<Integer> list=new ArrayList<>();
    for (int i=0;i<num;i++){
    Integer n=sup.get();
    list.add(n);
    }
    return list;
    }


    //3.Function<T,R>: 函数型接口 R apply(T t);
    @Test
    public void test3(){
    String newStr= handlerStr("helloworld",(str)->str.substring(3,6));
    System.out.println(newStr);
    }
    //处理字符串
    public String handlerStr(String str, Function<String,String> fun){
    return fun.apply(str);
    }

    //4.Predicate<T>: 断言型接口 boolean test(T t)
    @Test
    public void test4(){
    List<String> list= Arrays.asList("idea","eclipse","predicate","function");
    List<String> returnList= filterStr(list,(str)->str.length()>4);
    for (String str:returnList
    ) {
    System.out.println(str);
    }
    }
    //将满足条件的字符串,放到集合中
    public List<String> filterStr(List<String> list, Predicate<String> pre){
    List<String> newList=new ArrayList<>();
    for (String str:list
    ) {
    if(pre.test(str)){
    newList.add(str);
    }
    }
    return newList;
    }
    }
  • 相关阅读:
    (转载)C++ string中find() ,rfind() 等函数 用法总结及示例
    UVA 230 Borrowers (STL 行读入的处理 重载小于号)
    UVA 12100 打印队列(STL deque)
    uva 12096 The SetStack Computer(STL set的各种库函数 交集 并集 插入迭代器)
    uva 1592 Database (STL)
    HDU 1087 Super Jumping! Jumping! Jumping!
    hdu 1176 免费馅饼
    HDU 1003 Max Sum
    转战HDU
    hust 1227 Join Together
  • 原文地址:https://www.cnblogs.com/shuaifing/p/12160100.html
Copyright © 2011-2022 走看看