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. memcache安装及解决无法远程连接的问题

    Memcached是什么 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fit ...

  2. Linux远程拷贝scp

    Linux的scp命令可以实现两台服务器之间互相拷贝文件,我的测试环境是Centos6.4. 基本的命令格式 scp 拷贝目标文件 远程用户@远程主机地址:远程目录 一.从本机拷贝到目标远程主机 # ...

  3. 说说 JavaScript中 call和apply

    下面有关JavaScript中 call和apply的描述,错误的是? call与apply都属于Function.prototype的一个方法,所以每个function实例都有call.apply属 ...

  4. AcWing 241 楼兰图腾 (树状数组)

    在完成了分配任务之后,西部314来到了楼兰古城的西部. 相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀('V'),一个部落崇拜铁锹('∧'),他们分别用V和∧的形状来代表各自 ...

  5. 最短Hamilton路径(状压dp)

    最短Hamilton路径实际上就是状压dp,而且这是一道作为一个初学状压dp的我应该必做的题目 题目描述 给定一张 n(n≤20) 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 ...

  6. 牛客15334 Easygoing Single Tune Circulation(后缀自动机+字典树)

    传送门:Easygoing Single Tune Circulation 题意 给定n个字符串 s[i],再给出m个查询的字符串 t[i],问 t[i] 是否为某个 s[i] 循环无限次的子串. 题 ...

  7. P3376 [模板] 网络最大流

    https://www.luogu.org/blog/ONE-PIECE/wang-lao-liu-jiang-xie-zhi-dinic EK 292ms #include <bits/std ...

  8. CQRS+Event Sourcing

    using System; using System.Collections.Generic; using System.Linq; namespace CQRS { public class Eve ...

  9. Kill pending windows service

    Get-Service winrm -Verbose $winrmService=Get-CimInstance -ClassName win32_Service |? {$_.Name -eq &q ...

  10. 使用networkx库可视化对称矩阵的网络图形

    首先我的数据是.mat格式,讲讲如何用python读取.mat格式的数据(全套来) 我是python3版本 第一种读取方法: import h5py features_struct = h5py.Fi ...