首页 > 编程语言 >Java_Lamda表达式

Java_Lamda表达式

时间:2022-10-02 23:22:32浏览次数:94  
标签:Lamda Java like void println out public 表达式 lambda

Lamda表达式

λ希腊字母表中排序第十一位的字母,英文为Lambda
避免匿名内部类定义过多
其实质属于函数式编程的概念

(params) -> expression[表达式]
(params) -> statement[语句]
(params) -> {statements}
a-> System.out.println("i like lambda-->" + a);
new Thread(()->System.out.println("多线程学习。。。")).start();

<1>为什么要使用lambda表达式
1.避免匿名内部类定义过多
2.可以让你的代码看起来很简洁
3.去掉一堆没有意义的代码,只留下核心的逻辑
<2>也许你会说,我看了Lambda表达式,不但不觉得简洁,反而觉得更乱,看不懂了。那是因为
我们还没有习惯,用的多了,看习惯了,就好了。

理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在
函数式接口的定义:
任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。

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

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

package src.Thread;
/*推导lambda表达式*/
public class TestLambda {
    public static void main(String[] args) {

        ILike like = new Like();
        like.lambda();

        like = new Like2();
        like.lambda();

        //4.局部内部类
        class Like3 implements ILike{
            @Override
            public void lambda() {
                System.out.println("i like lambda3");
            }
        }

        like = new Like3();
        like.lambda();

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

        //6.用lambda简化
        like = ()->{
            System.out.println("i like lambda5");
        };
        like.lambda();
    }

    //3.静态内部类
    static class Like2 implements ILike{
        @Override
        public void lambda() {
            System.out.println("i like lambda");
        }
    }
}

//1.定义一个函数式接口
interface ILike{
    void lambda();
}

//2.实现类
class Like implements ILike{
    @Override
    public void lambda() {
        System.out.println("i like lambda");
    }
}

标签:Lamda,Java,like,void,println,out,public,表达式,lambda
From: https://www.cnblogs.com/wangzhen1991/p/16749540.html

相关文章

  • 使用JAVA代码实现POST发送application/x-www-form-urlencoded请求
    前言在实际开发过程中,我们经常是使用的POST发送application/json;charset=utf-8格式请求,但是有时候接口会设计成application/x-www-form-urlencoded,这就需要我们随机应变,......
  • 归并排序Java
    归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。其思想为:分解:分解待排序的n个元素的序列成各具n/2个元......
  • 力扣532(java)-数组中的 k-diff 数对(中等)
    题目:给你一个整数数组 nums和一个整数 k,请你在数组中找出不同的 k-diff数对,并返回不同的k-diff数对的数目。k-diff 数对定义为一个整数对(nums[i],nums[j])......
  • Java遍历文件夹
    Java遍历文件夹简单写了一个打印目录下所有文件以及文件夹的代码,类比于树的遍历,写了深度优先和广度优先的遍历。并且还写了个JDK1.7接口提供的的版本。深度广度遍历都用......
  • 9月30Java类与对象中动手动脑
    类与对象定义了一组大体相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性对象则是类的具体化,是类的实例。类通过派生类可以有子类,同样也可以有父类,形......
  • 006.路径表达式用法
         ......
  • java学习之:类和对象、语句块、方法、递归结构!
    语句块和方法语句块语句块确定了局部变量的作用域。语句块嵌套,但是不能在两个嵌套的块内声明同名的变量。语句块可以使用语句块外的变量,语句块中定义的变量作用域只限于语句......
  • javascript>=和<=
    一个条件都不满足为false,至少满足一个条件为truevara=10console.log(a>10);//false;console.log(a<10);//false;console.log(a==10);//trueconsole.log(a>=10);//true1......
  • 【Java】01基础-05 方法
    1.方法概述1.1方法的概念方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集注意:方法必须先创建才可以使用,该过程成为方法定义方法创建后并不......
  • 【Java】01基础-04数组
    1.数组1.1数组介绍数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2数组的定义格式1.2.1第一种格式数据类型[]数组名示例:int[]arr;double[]......