Java的Lambda表达式

85 阅读1分钟

1.首先Lambda表达式最实用的肯定是forEach的循环遍历.

2.然后呢,Lambda表达式的主要模块就是

f -> {},况且它可以单参数或者多参数运行,当代码只有一条语句时,可以不加{},例如 s -> System.out.println("只有一条语句");

3.其次就是我们最熟悉的Lambda的排序了->sort,直接看代码:

4.当我们引用外部变量的时候,切记,不可以再Lambda表达式里面改变局部变量的值和参数名与变量名重名,如下:

String f = "鱼香肉丝";
Food.forEach(f ->{System.out.println(f);});
//上面由于局部变量已经为f,而参数不可有与局部变量相同的变量名。
String name = "某某";
student.forEach(name = "悠悠";);
//上面也是不对的,因为不可以在Lambda表达式里面修改局部变量的值。

5.最后就是双冒号操作符,我们直接来看例子就完事了,如下:

其中还有的就是调用父类方法,父类方法则就是更加简单了,直接使用super关键字就可以解决了,直接举例子:

import java.util.Arrays;
import java.util.List;

public class LambdaTest extends LambdaExample {
  public static void main(String[] args) {
    List<Fruit> fruits = Arrays.asList(
            new Fruit("香蕉"),
            new Fruit("苹果"),
            new Fruit("梨子"),
            new Fruit("西瓜"),
            new Fruit("荔枝")
    );

    LambdaTest at = new LambdaTest();
    at.print(fruits);
  }

  public void print(List<Fruit> fruits){
    fruits.forEach(super::print);
    }
}

class LambdaExample {
    public void print(Fruit f){
        System.out.println(f.getName());
    }
}

以上就是一些简单的JAVA的Lambda表达式了,明天将是java的StreamAPI.