0.预备知识

  函数式接口:只包含一个抽象方法的接口。

  内部类:静态、成员内部类

      局部内部类

      匿名内部类

1.代码

 1 /**
2 * 函数式编程:
3 * lambda表达式前提:
4 * 必须是函数式接口。
5 */
6 //1.定义一个函数接口
7 interface GetFx{
8 void getFx(int x);
9 }
10 //2.0 外部类实现
11 class Fx1 implements GetFx{
12 @Override
13 public void getFx(int x){
14 System.out.println("f(" + x + ")=" + Math.sin(x));
15 }
16 }
17 public class LambdaDemo {
18 //2.1 静态成员内部类实现
19 static class Fx2 implements GetFx{
20 @Override
21 public void getFx(int x) {
22 System.out.println("f(" + x + ")=" + Math.cos(x));
23 }
24 }
25 public static void main(String[] args) {
26 GetFx fx;
27 fx = new Fx2();
28 fx.getFx(1);
29
30 //2.2 局部内部类实现
31 class Fx3 implements GetFx{
32 @Override
33 public void getFx(int x) {
34 System.out.println("f(" + x + ")=" + Math.abs(x));
35 }
36 }
37 fx = new Fx3();
38 fx.getFx(1);
39
40 //2.3 匿名内部类实现
41 fx = new GetFx() {
42 @Override
43 public void getFx(int x) {
44 System.out.println("f(" + x + ")=" + Math.sqrt(x));
45 }
46 };
47 fx.getFx(1);
48
49 //3.0 lambda简化
50 fx = (int a)->{
51 System.out.println("1:"+a);
52 };
53 fx.getFx(1);
54
55 //3.1 简化参数类型(多参数要简化都简化)
56 fx = (a)->{
57 System.out.println("2:"+a);
58 };
59 fx.getFx(1);
60
61 //3.2 简化括号(单参数,多参数必须加括号)
62 fx = a->{
63 System.out.println("3:"+a);
64 };
65 fx.getFx(1);
66
67 //3.3 简化花括号(只适用单行代码)
68 fx = a->System.out.println("4:"+a);
69 fx.getFx(1);
70 }
71 }

以上从    外部类-->静态内部类-->局部内部类-->匿名内部类-->lambda表达式   展示了lambda表达式的简化过程。

Lambda 表达式简介的更多相关文章

  1. Lambda表达式 简介 语法 示例

    Lambda 表达式也称为闭包,是匿名类的简短形式.Lambda 表达式简化了[单一抽象方法声明接口]的使用,因此 lambda 表达式也称为功能接口. 在 Java SE 7 中,单一方法接口可使用 ...

  2. Lambda表达式 简介 语法 示例 匿名内部类

    在AS中使用 Lambda 表达式 Demo地址:https://github.com/baiqiantao/MultiTypeTest.git Gradle(Project级别)中添加classpa ...

  3. Java8的Lambda表达式简介

    先阐述一下JSR(Java Specification Requests)规范,即Java语言的规范提案.是向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求 ...

  4. C++ lambda 表达式 简介

    自己根据对lambda表达式的理解,做了一套ppt简单介绍

  5. Java中的Lambda表达式简介及应用

    在接触Lambda表达式.了解其作用之前,首先来看一下,不用Lambda的时候我们是怎么来做事情的. 我们的需求是,创建一个动物(Animal)的列表,里面有动物的物种名,以及这种动物是否会跳,是否会 ...

  6. java8:(Lambda 表达式简介)

    JDK8的新特性——Lambda表达式 JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”.尽管JDK8已不再“新”,但它的重要特性之一——Lambda表达式依然是不被大部分 ...

  7. .net学习笔记---lambda表达式(自执行方法)

    http://www.cnblogs.com/jesse2013/p/happylambda.html#b034 lambda表达式 http://www.cnblogs.com/OceanEyes/ ...

  8. 深入浅出 Java 8 Lambda 表达式

    摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等.本文系 OneAPM 工程师编译整理. Java 是一流的面向对象语言,除了部分简 ...

  9. 进阶系列(8)——匿名方法与lambda表达式

    一 匿名方法的介绍     匿名方法是为了简化委托的实现,方便调用委托方法而出现的,同时,匿名方法也是学好lambda表达式的基础.在委托调用的方法中,如果方法只被调用一次,这个时候我们就没有必要创建 ...

随机推荐

  1. HDU5691 Sitting in Line【状压DP】

    HDU5691 Sitting in Line 题意: 给出\(n\)个数字,有些数字的位置固定了,现在要求把所有没固定的数字放在一个位置,使得任意相邻两个位置的数字的相乘的和最大 题解: \(n\) ...

  2. uva10891 Game of Sum(博弈+区间dp+优化)

    题目:点击打开链接 题意:两个人做游戏,共有n个数,每个人可以任选一端取任意多连续的数,问两个人都想拿最多的情况下,先手最多比后手多拿多少分数. 思路:这题一开始想到的是用dp[i][j]表示区间[i ...

  3. Codeforces Round #647 (Div. 2) - Thanks, Algo Muse! A、Johnny and Ancient Computer B、Johnny and His Hobbies C、Johnny and Another Rating Drop

    题目链接:A.Johnny and Ancient Computer 题意: 给你两个数a,b.问你可不可以通过左移位运算或者右移位运算使得它们两个相等.可以的话输出操作次数,不可以输出-1 一次操作 ...

  4. Codeforces 1144F Graph Without Long Directed Paths DFS染色

    题意: 输入一张有向图,无自回路和重边,判断能否将它变为有向图,使得图中任意一条路径长度都小于2. 如果可以,按照输入的边的顺序输出构造的每条边的方向,构造的边与输入的方向一致就输出1,否则输出0. ...

  5. WSL安装

    默认的我们可以看到并没有安装任何发行版本: 访问:https://aka.ms/wslstore 安装后我们如何进入linux系统呢,我们使用windows terminal

  6. 2.PowerShell概述

    PowerShell PowerShell命令窗一般随系统带着,运行->输入:powershell,即可打开命令窗口. 命令 Powershell有诸多命令,兼容cmd命令 语法和命令 在此我推 ...

  7. Filebeat 日志收集

    Filebeat 介绍 Filebeat 安装 # 上传代码包 [root@redis03 ~]# rz filebeat-6.6.0-x86_64.rpm # 安装 [root@redis03 ~] ...

  8. HDU 4280 Island Transport(HLPP板子)题解

    题意: 求最大流 思路: \(1e5\)条边,偷了一个超长的\(HLPP\)板子.复杂度\(n^2 \sqrt{m}\).但通常在随机情况下并没有isap快. 板子: template<clas ...

  9. 重新上手c语言的一些坑

    c语言结构体不能声明函数,放几个函数指针倒是没问题 c语言结构体不能在声明时初始化 声明两个指针 int *a,*b; 或者typedef int* int_P int_P a,b; typedef要 ...

  10. Install pyaudio on Ubuntu

    pip install python3-pyaudio sudo apt-get install portaudio19-dev python-all-dev pip install pyaudio