Lambda 表达式简介
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 表达式简介的更多相关文章
- Lambda表达式 简介 语法 示例
Lambda 表达式也称为闭包,是匿名类的简短形式.Lambda 表达式简化了[单一抽象方法声明接口]的使用,因此 lambda 表达式也称为功能接口. 在 Java SE 7 中,单一方法接口可使用 ...
- Lambda表达式 简介 语法 示例 匿名内部类
在AS中使用 Lambda 表达式 Demo地址:https://github.com/baiqiantao/MultiTypeTest.git Gradle(Project级别)中添加classpa ...
- Java8的Lambda表达式简介
先阐述一下JSR(Java Specification Requests)规范,即Java语言的规范提案.是向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求 ...
- C++ lambda 表达式 简介
自己根据对lambda表达式的理解,做了一套ppt简单介绍
- Java中的Lambda表达式简介及应用
在接触Lambda表达式.了解其作用之前,首先来看一下,不用Lambda的时候我们是怎么来做事情的. 我们的需求是,创建一个动物(Animal)的列表,里面有动物的物种名,以及这种动物是否会跳,是否会 ...
- java8:(Lambda 表达式简介)
JDK8的新特性——Lambda表达式 JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”.尽管JDK8已不再“新”,但它的重要特性之一——Lambda表达式依然是不被大部分 ...
- .net学习笔记---lambda表达式(自执行方法)
http://www.cnblogs.com/jesse2013/p/happylambda.html#b034 lambda表达式 http://www.cnblogs.com/OceanEyes/ ...
- 深入浅出 Java 8 Lambda 表达式
摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等.本文系 OneAPM 工程师编译整理. Java 是一流的面向对象语言,除了部分简 ...
- 进阶系列(8)——匿名方法与lambda表达式
一 匿名方法的介绍 匿名方法是为了简化委托的实现,方便调用委托方法而出现的,同时,匿名方法也是学好lambda表达式的基础.在委托调用的方法中,如果方法只被调用一次,这个时候我们就没有必要创建 ...
随机推荐
- workflow定时任务部分失败
workflow遇到一个问题,每天定时任务导致部分失败,截图如下 目前这个问题现场出现过是重启wf解决的 ,但是也给研发排查了,根本原因不清楚,不确保现场还会再遇到.
- Windows10与虚拟机中CentOS-7.2进行telnet通信 出现在端口23处失败【解决】
(telnet服务是由xinetd守护,所以安装和启动都要用到xinetd) 1.先检查CentOS7.0是否已经安装以下几个安装包:telnet-server.telnet.xinetd.命令如下: ...
- 牛客编程巅峰赛S2第10场 - 钻石&王者 C.牛牛的路径和 (位运算,dfs)
题意:给你节点数为\(n\)的树,每个节点都有自己的权值,求所有路径的上的点的权值按位与的和. 题解:题目给的数据很大,我们不能直接去找.因此我们可以枚举二进制\([1,20]\)的每一位,然后再枚举 ...
- Educational DP Contest E - Knapsack 2 (01背包进阶版)
题意:有\(n\)个物品,第\(i\)个物品价值\(v_{i}\),体积为\(w_{i}\),你有容量为\(W\)的背包,求能放物品的最大价值. 题解:经典01背包,但是物品的最大体积给到了\(10^ ...
- c# grpc
刚接触RPC时只知道概念是远程过程调用协议,分为服务端和客户端,客户端请求服务端,服务端再回应客户端,粗看和HTTP一应一答没有什么区别.既然有着存在即合理的说法,网上找找说法,有的讲的太深感觉太啰嗦 ...
- 在kubernetes集群里集成Apollo配置中心(1)之交付Apollo-configservice至Kubernetes集群
1.Apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微 ...
- Hexo、主题、部署上线
Hexo.主题.部署上线 安装Hexo git和nodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹MyBlog,用来存放自己的博客文件,然后cd到这个文件夹下(或者在这个文件夹下直接右 ...
- tensorflow报错:Attempting to fetch value instead of handling error Internal: failed to get device attribute 13 for device 0: CUDA_ERROR_UNKNOWN:
就是在spyder跑上一篇文章的代码然后就报错: Attempting to fetch value instead of handling error Internal: failed to get ...
- 计算机网络 part2
一.UDP协议 1.概述 UDP提供不可靠的服务,无连接(不存在建立连接的时延),首部开销相对TCP小,没有拥塞控制,提供最大努力交付,面向报文(无论多长的报文UDP也只加一个头部就往下发:TCP面向 ...
- Petrozavodsk Winter Training Camp 2017G(栈)题解
题意: \(M_i\)为一个\(m*m\)矩阵,已知 \[\begin{aligned} &M_0=A\\ &M_i=(\prod_{j=c_i}^{i+1}M_j)B \end{al ...