lambda表达式语法与函数式编程接口

java8中lambda表达式的两种语法

1、(parameters) ->expression   单表达式

2、(parameters) ->{statements;}  语句

语法解释

(parameters),lambda表达式的参数列表,其定义方法为JAVA普通的方法相同,例如(Object a, Object b)。

-> 箭头,是参数列表与lambda表达式主题部分的分隔符号。

-------------------------------------------------------------------------------

在java8中,一个接口如果只定义了一个抽象方法,那这个接口就可以称为函数式接口,就可以使用lambda表达式来简化程序代码。Lambda表达式可以直接赋值给变量,也可以直接作为参数传递给函数

public class LambdaDemo {
    public static void main(String[] args) {
        // 使用匿名内部类
        startThread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                System.out.println("匿名内部类实现runnabale");
            }
        });

        // 使用lambda表达式
        startThread(() ->  {System.out.println("lambda实现runnable");});

    }

    public static void startThread(Runnable a ) {
        (new Thread(a)).start();
    }
}

原文地址:https://www.cnblogs.com/AyasatoMayoi/p/10868906.html

时间: 2024-08-14 19:32:31

lambda表达式语法与函数式编程接口的相关文章

一课掌握Lambda表达式语法及作用简单入门1??

通过三个方面讲解Lambda表达式 1  什么是Lambda表达式 2  Lambda表达式基础知识 3  Lambda表达式高级扩展 分为三个层次去介绍一下Lambda表达式 重构结束后,我们针对性能问题进行讲解, 1 什么是Lambda表达式 2 Model Code As Data 3 功能接口设计及优化 4 为什么要使用Lambda表达式 Lambda表达式,也可以成为箭头函数,匿名函数,闭包 Lambda表达式体现的是轻量级函数方式编程思想 JDK8新特性 -> 左边操作参数,右侧是操

Java8初体验(1):lambda表达式语法

原文出处: 一冰_天锦 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化.本文是该系列的第一篇,主要介绍Java8对屌丝码农最有吸引力的一个特性—lambda表达式. java8的安装 工欲善其器必先利其器,首先安装JDK8.过程省略,大家应该都可以自己搞定.但是有一点这里强调一下(Windows系统):目前我们工作的版本一般是java 6或者java 7,所以很多人安

Lambda 表达式语法

本主题介绍 lambda 表达式的语法. 它演示提供 lambda 表达式的结构元素的示例,这些元素与示例. Lambda 表达式语法 lambda expression (items marked with the opt subscript are optional):' data-guid="7c06475b6c7e659231eab3f6a09da2c5">下面用于定义显示语法,ISO C++11 从标准,lambda 表达式 (项标记下标 选择 是可选的): lambd

Java8自定义函数式编程接口

什么是函数编程接口? 抽象方法有且只有一个,并且被@FunctionalInterface注解该接口. 自定义一个函数式编程接口 /** * 自定义一个函数式编程接口 * 函数式编程只有一个抽象方法,所以默认的是实现的是这个抽象方法 * @param <T> * @param <R> */ @FunctionalInterface public interface CalcFunctionInterface<T, R> { /** * 计算t1和t2 * * @para

Java8函数式编程(一):Lambda表达式类型与常用函数接口

[TOC] 1 前言 最近在看一些开源项目的源码,函数式编程风格的代码无处不在,所以得要好好学一下了. 2 Lambda表达式类型 无参数: Runnable noArguments = () -> System.out.println("Hello World!"); noArguments.run(); 一个参数: UnaryOperator<Boolean> oneArgument = x -> !x; System.out.println(oneArgu

Lambda表达式——注重过程的编程思想

一.使用匿名内部类的匿名对象创建线程和Lambda表达式写法 Lambda表达式写法不用去定义一个Runable接口的实现类: 二.方法入参是一个接口或者接口的实现类 三.对某个类的一些对象实例进行排序 其中,数组创建时候使用的是静态初始化,里面存放的对象是匿名对象: Lambda表达式写法: 四.计算两数和,方法的入参是一个接口 五.Lambda表达式写法上下文可推导可省略 入参列表有且只有一个:参数列表的括号可以省略(参数列表中参数的类型所有情况下都可以省略) 方法体只有一行代码:方法体花括

java8 lambda表达式-语法

什么事lambda表达式,在百科的解释是 "Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数.Lambda表达式可以表示闭包(注意和数学传统意义上的不同). 在java中我理解是匿名类,或者参数表达式(带有参数的可执行的代码块). (Type1 param1, Type2 param2, ..., TypeN

java8之lambda表达式(lambda表达式语法)

到目前为止,在Java中向其他代码传递一段代码并不是很容易.你不可能将代码块到处传递.由于java是一个面向对象的语言,因此你不得不构建一个属于某个类的对象,由它的某个方法来包含所需的代码. lambda表达式帮我们解决了这个问题,可以直接传递代码块!Java中lambda表达式的格式:参数,箭头(->),以及一个表达式.示例: (String first,String second) -> Integer.compare(first.length(), second.length()) 如果

Java 函数式编程和Lambda表达式

1.Java 8最重要的新特性 Lambda表达式.接口改进(默认方法)和批数据处理. 2.函数式编程 本质上来说,编程关注两个维度:数据和数据上的操作. 面向对象的编程泛型强调让操作围绕数据,这样可以实现以类为单位的重用,当为类添加新的数据类型时,原有代码无需修改. 函数式编程是一种不同的编程模型,它以操作(函数)为中心,强调变量不变性.函数式编程的准则是不依赖外部的数据,也不改变外部数据的值.这一特性满足了多核并行程序设计的需求,因此能简化并行程序开发. 函数式编程用函数来表达所有的概念,完