Java- Lambda表达式

这篇具有很好参考价值的文章主要介绍了Java- Lambda表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Lambda简介

二、Lambda使用前提

三、Lambda语法

1.操作符

a."->"

 b."::"

2.格式 

a.无参数

b.有参数

四、Lambda演化过程

五、Lambda实现排序


一、Lambda简介

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。可以把Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表,函数主体,返回类型。

二、Lambda使用前提

接口有且仅有一个抽象方法才能使用lambad表达式。函数式接口是指,有且仅有一个抽象方法的接口。 

三、Lambda语法

1.操作符

a."->"

java中,引入了一个新的操作符“->”,称为Lambda操作符;箭头操作符将Lambda分成了两个部分。

左侧:Lambda表达式的参数

右侧:Lambda表达式中所需要执行的功能,即Lambda函数体,也可以是 Lambda 的返回值

 b."::"

方法引用使用的一对冒号 :: 文章来源地址https://www.toymoban.com/news/detail-436138.html

2.格式 

a.无参数

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

b.有参数

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

四、Lambda演化过程

public interface Interface {
    public int add(int a);
}
public class Impl implements Interface {
    @Override
    public int add(int a) {
        return a + 1;
    }
}
public class Test {
    public static void main(String[] args) {

        Interface im1 = new Impl();
        int a = im1.add(20);
        System.out.println(a);// 外部类


        class Impl2 implements Interface {
            public int add(int a) {
                return a + 1;
            }
        }
        Interface im2 = new Impl2();
        int a1 = im2.add(30);
        System.out.println(a1);// 内部类


        Interface im3 = new Interface() {
            public int add(int a) {
                return a;
            }
        };
        System.out.println(im3.add(40));// 匿名内部类


        Interface im4 = (b) -> {
            return b + 1;
        };// (b)方法
        System.out.println(im4.add(100));// 常规lambda


        Interface im5 = (b) -> b + 1;
        System.out.println(im5.add(200));// 简化lambda
        

        Test p1 = new Test();
        Interface im6 = p1::add;
        System.out.println(im6.add(1000));

    }

    public int add(int a) {
        return a + 1;
    }
}

五、Lambda实现排序

public class Dog {
    private int age;
    private String name;

    public Dog() {

    }

    public Dog(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return this.age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public String toString() {
        return "年龄:" + age + "  名字:" + name;
    }

}
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List<Dog> list = new ArrayList<>();
        list.add(new Dog(5, "dog5"));
        list.add(new Dog(3, "dog3"));
        list.add(new Dog(2, "dog2"));
        list.add(new Dog(1, "dog1"));
        list.add(new Dog(4, "dog4"));

        list.sort(new Comparator<Dog>() {
            public int compare(Dog o1, Dog o2) {
                return o2.getAge() - o1.getAge();
            }
        });// 匿名内部类
        for (Dog dog : list) {
            System.out.println(dog);
        }

        System.out.println("-------------");

        list.sort((o1, o2) -> o1.getAge() - o2.getAge());// lambda表达式
        for (Dog dog : list) {
            System.out.println(dog);
        }
    }
}

到了这里,关于Java- Lambda表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【javaSE】 Lambda表达式与Lambda表达式的使用

    Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。 Lambda 表达式(Lambda expression) ,基于数学中的λ演算得名,也

    2024年02月08日
    浏览(48)
  • Java Lambda表达式

    1.1 函数式编程思想概括 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿数据做操作” 面向对象思想强调“必须通过对象的形式来做事情” 函数式思想则尽量忽略面

    2024年02月07日
    浏览(44)
  • Java- Lambda表达式

    目录 一、Lambda简介 二、Lambda使用前提 三、Lambda语法 1.操作符 a.\\\"-\\\"  b.\\\"::\\\" 2.格式  a.无参数 b.有参数 四、Lambda演化过程 五、Lambda实现排序 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)

    2024年02月03日
    浏览(60)
  • Lambda表达式(JAVA)

    注:如果没有学过 匿名内部类 和 接口 不推荐往下看。 (parameters) - expression 或 (parameters) -{ statements; } parameters:表示参数列表; -:可理解为“被用于”的意思; expression:表示一条语句; statements:表示多条语句。 Lambda可以理解为:Lambda就是匿名内部类的简化。 lambda表达式

    2024年02月08日
    浏览(40)
  • Java Lambda 表达式

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Java Lambda 表达式是 Java 8 引入的一种函数式编程特性,它是一种轻量级的匿名函数,允许我们将函数作为方法的参数进行传递。Lambda 表达式可以理解为是一种简洁的方式来表示可传递的代码块,它可以替代传统的匿名内

    2024年02月08日
    浏览(39)
  • 【JAVA】包装类、正则表达式、Arrays类、Lambda表达式

    包装类是8种基本数据类型对应的引用类型 作用:后期的集合和泛型不支持基本类型,只能使用包装类 基本数据类型和其对应的引用数据类型的变量可以互相赋值 基本数据类型 引用数据类型 byte Byte short Short int Integer long Long char Character float Float double Double boolean Boolean 包装类

    2024年02月13日
    浏览(37)
  • java lambda表达式详解

    我们知道,在Java中,接口是不能实例化的,但是接口对象可以指向它的实现类对象。如果接口连实现对象都没有呢?那还可以使用匿名类的方式,如下: 复制 但是,使用匿名内部的方式,代码量其实并不是非常简洁,而为了使代码更加的简洁,Java引进了 Lambda 表达式的写法,

    2024年02月03日
    浏览(37)
  • Java学习——lambda表达式

    什么是Lambda表达式? 可以将Lambda表达式理解为一个匿名函数; Lambda表达式允许将一个函数作为另外一个函数的参数; 我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码作为实参),也可以理解为函数式编程, 将一个函数作为参数进行传递 。 为什么要引入Lambda表

    2024年02月04日
    浏览(44)
  • Java中的lambda表达式

    目录 一、背景 二、lambada表达式的基本使用 三、变量捕获 四、lambda在集合中的使用(map和set) 五、优缺点 一、背景 (1)、lambda表达式的定义: (2)、lambda表达式的语法: (3)、函数式接口 二、lambada表达式的基本使用 (1)没有使用lambda表达式,简单调用函数式接口展

    2024年02月08日
    浏览(38)
  • Java 8 Lambda表达式详解

    在Java 8中,引入了一种全新的函数编程概念,即Lambda表达式。这是一个重要的进步,它让Java的功能得以大幅扩展,同时还让代码变得更加简洁明了。接下来,我将详细介绍Lambda表达式的相关知识,包括其基本语法、使用场景和特性。 Lambda表达式基本的语法可以分为三个部分

    2024年02月08日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包