美文网首页
lambda常用使用场景

lambda常用使用场景

作者: 柒月姐姐a | 来源:发表于2020-02-19 16:53 被阅读0次

例一

Thread t1 = new Thread(new Runnable() {
              @Override
              public void run() {
                  System.out.println("no use lambda");
              }
          });
          
Thread t2 = new Thread(() -> System.out.println("use lambda"));//只需要一行

例二

List<Integer> integers = Arrays.asList(4, 5, 6,1, 2, 3,7, 8,8,9,10);
 
List<Integer> evens = integers.stream().filter(i -> i % 2 == 0)
        .collect(Collectors.toList()); //过滤出偶数列表 [4,6,8,8,10]<br>
List<Integer> sortIntegers = integers.stream().sorted()
        .limit(5).collect(Collectors.toList());//排序并且提取出前5个元素 [1,2,3,4,5]
 
List<Integer> squareList = integers.stream().map(i -> i * i).collect(Collectors.toList());//转成平方列表
 
int sum = integers.stream().mapToInt(Integer::intValue).sum();//求和
 
Set<Integer> integersSet = integers.stream().collect(Collectors.toSet());//转成其它数据结构比如set
 
Map<Boolean, List<Integer>> listMap = integers.stream().collect(Collectors.groupingBy(i -> i % 2 == 0)); //根据奇偶性分组
 
List<Integer> list = integers.stream().filter(i -> i % 2 == 0).map(i -> i * i).distinct().collect(Collectors.toList());//复合操作

//转成平方列表   数据并行处理,只需要在原来的基础上加一个parallel()就可以开启~。顺便提一下这里parallel()开启的底层并行框架是fork/join,默认的并行数是Ncpu个。
List<Integer> squareList = integers.stream().parallel().map(i -> i * i).collect(Collectors.toList());

例三、for循环最好不要嵌套两层

List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");
for (String feature : features) {
    System.out.println(feature); //外部迭代   
}

features.stream.forEach(n -> System.out.println(n)); //内部迭代

例四
尽量避免在Lambda的方法体中使用{}代码块
优先使用

Foo foo = parameter -> buildString(parameter);
private String buildString(String parameter) {
    String result = "Something " + parameter;
    //many lines of code
    return result;
}

而不是

Foo foo = parameter -> { String result = "Something " + parameter;
    //many lines of code
    return result;
};

相关文章

  • lambda常用使用场景

    例一 例二 例三、for循环最好不要嵌套两层 例四尽量避免在Lambda的方法体中使用{}代码块优先使用 而不是

  • Python lambda函数

    lambda函数 在Python中,lambda函数是使用lambda表达式定义的单行匿名函数。它常用于将函数作为...

  • Lambda

    要明白Lambda表达在Python中是作为一个匿名函数的构造器而存在。其次,要明白Lambda表达式的常用场景是...

  • C++11 lambda表达式解析

    Lambda表达式的使用场景 其实我在刚开始使用lambda的时候就挺好奇什么时候使用好,经常在不需要使用的时候使...

  • Java - lambda我也能学会

    我们首先看一个java实现多线程的lambda表达式的例子 常规 lambda形式 简洁此方法使用的场景只能是实现...

  • Java - lambda我也能学会

    我们首先看一个java实现多线程的lambda表达式的例子 常规 lambda形式 简洁此方法使用的场景只能是实现...

  • Java - lambda我也能学会

    我们首先看一个java实现多线程的lambda表达式的例子 常规 lambda形式 简洁此方法使用的场景只能是实现...

  • Java - lambda我也能学会

    我们首先看一个java实现多线程的lambda表达式的例子 常规 lambda形式 简洁此方法使用的场景只能是实现...

  • Java - lambda我也能学会

    我们首先看一个java实现多线程的lambda表达式的例子 常规 lambda形式 简洁此方法使用的场景只能是实现...

  • Java - lambda我也能学会

    我们首先看一个java实现多线程的lambda表达式的例子 常规 lambda形式 简洁此方法使用的场景只能是实现...

网友评论

      本文标题:lambda常用使用场景

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