java中的lambda表达式

文章目录

    • 1.了解labda
      • 1.1为什么要使用lambda表达式
      • 1.2lambda的表达式语法
    • 2.lambda优化函数式接口的代码书写
      • 2.1 什么是函数接口
      • 2.2.例子

1.了解labda

1.1为什么要使用lambda表达式

Lambda最核心的就是 结合Stream API对集合数据的遍历、提取、过滤、排序等一系列操作的简化,以一种函数式编程的方式,对集合进行操作。

  • 避免匿名内部类定义过多
  • 可以让你的代码看起来简洁
  • 去掉一堆没有意义的代码,只留下核心的逻辑

1.2lambda的表达式语法

 (parameters) -> expression  
 (parameters) ->{ statements; }

2.lambda优化函数式接口的代码书写

2.1 什么是函数接口

任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口

public interface Runnable{
    public abstract void run();
}

对于函数式接口,我们可以通过lambda表达式来创建该接口的对象

2.2.例子

package com.company;

import java.sql.SQLOutput;
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.net.URL;
import java.util.concurrent.*;

public class Main{
    //3.静态内部类
    static class like2 implements Like{
        @Override
        public void lambda() {
            System.out.println("like2");
        }
    }

    public static void main(String[] args) {
        Like li=new like1();
        li.lambda();
        li=new like2();
        li.lambda();
        //4.局部内部类
        class like3 implements Like{
            @Override
            public void lambda() {
                System.out.println("like3");
            }
        }
        li=new like3();
        li.lambda();

        //5.匿名内部类,没有类的名称,必须借助接口或者父类
        li=new Like() {
            @Override
            public void lambda() {
                System.out.println("like4");
            }
        };
        li.lambda();

        //6.用lambda简化
        li=()->{
            System.out.println("like5");
        };
        li.lambda();
    }

}


//1.定义一个函数式接口
interface Like{
    void lambda();
}
//2.实现类
class like1 implements Like{
    @Override
    public void lambda() {
        System.out.println("like1");
    }
}

你可能感兴趣的:(Java)