> For the complete documentation index, see [llms.txt](https://maxwell.gitbook.io/way-to-architect/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://maxwell.gitbook.io/way-to-architect/java-yu-yan/xin-te-xing/lambda-biao-da-shi.md).

# lambda表达式

1、用lambda表达式实现Runnable：`() -> {}`代码块替代了整个匿名类

```java
// Java 8之前：
new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Before Java8, too much code for too little to do");
    }
}).start();

//Java 8方式：
new Thread(() -> System.out.println("In Java8, Lambda expression rocks !!")).start();
```

�你可以使用lambda写出如下代码：

```java
(params) -> expression
(params) -> statement
(params) -> { statements }
```

�2、使用Java 8 lambda表达式进行事件处理

```java
// Java 8之前：
JButton show = new JButton("Show");
show.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Event handling without lambda expression is boring");
    }
});

// Java 8方式：
show.addActionListener((e) -> {
    System.out.println("Light, Camera, Action !! Lambda expressions Rocks");
});
```

�3、使用lambda表达式对列表进行迭代

```java
// Java 8之前：
List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");
for (String feature : features) {
    System.out.println(feature);
}

// Java 8之后：
List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");
features.forEach(n -> System.out.println(n));

//或者使用这种方式，即方法引用由::双冒号操作符标示，
features.forEach(System.out::println);
```

�

来源：[Java8 lambda表达式10个示例](http://www.importnew.com/16436.html)
