JAVA函数式接口与Lambda表达式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012442381/article/details/80057964

函数式接口

有且只有一个抽象方法,多个非抽象方法的抽象类

熟悉的函数式接口有:
        java.lang.Runnable
        java,util.Comparator
JDK 1.8 后新增加的函数式接口包:
        java.util.function

函数式接口可以隐式的转化为lambda表达式

    //遍历集合
    List list = Arrays.asList(1,2,3,4,5,6,7);
    list.forEach(ele -> System.out.println(ele));

    // 删除偶数元素
    list.removeIf(ele  ->  ((int)ele)% 2 == 0);

Lambda 表达式

lambda 表达式可以理解是一个匿名函数,也可以用lambda表达式去表示一个匿名内部类

语法结构:
(参数列表)->{表达式;}
(参数列表):可以看做方法的参数
{表达式;}:是方法体

// 内部类和lambda实现的对比
Runnable run = new Runnable()
{
    @Override
    public void run()
    {
        System.out.println("内部类");

    }
};
run.run();

Runnable runl = ()->System.out.println("Lambda");
runl.run();

猜你喜欢

转载自blog.csdn.net/u012442381/article/details/80057964