善用lambda

作者: alonwang | 来源:发表于2018-09-03 17:18 被阅读0次

    看到ibm上lambda系列的文章这里,做下总结

    取代简单for循环

    对于简单的for循环可以IntStream取代

    //normal
    for(int i=0;i<4;i++){
    System.out.print(i + "...")
    }
    
    //lambda
    IntStream.range(0,4).forEach(i->System.out.print(i + "..."))
    

    尽量去除冗余信息


    image

    1.传递形参为实参

    //简化前
    forEach(e->System.out.println(e));
    
    //简化后
    forEach(System.out::println);
    
    //简化前
    .map(e -> Integer.valueOf(e))
    
    //简化后
    .map(Integer::valueOf)
    
    image
    1. 传递形参给目标
    //简化前
    .map(e -> Integer.valueOf(e))
    
    //简化后
    
    .map(Integer::valueOf)
    
    image
    1. 传递构造函数调用
    //简化前
    .collect(toCollection(() -> new LinkedList<Double>()));
    
    //简化后
    .collect(toCollection(LinkedList::new));
    
    image
    1. 传递多个实参
    //简化前
    .reduce(0, (total, e) -> Integer.sum(total, e)));
    
    //简化后
    .reduce(0, Integer::sum));
    
    image
    //简化前
    .reduce("", (result, letter) -> result.concat(letter)));
    //简化后
    .reduce("", String::concat));
    
    image

    相关文章

      网友评论

        本文标题:善用lambda

        本文链接:https://www.haomeiwen.com/subject/llliwftx.html