java单个变量的表达式_java中使用Lambda表达式的5种语法
1,标准写法
思考下述情况:
String[] arr = {"program", "creek", "is", "a", "java", "site"};
Arrays.sort(arr, (String m, String n) -> Integer.compare(m.length(), n.length()));
System.out.println(Arrays.toString(arr));
lambda表达式的标准写法由下面几点构成:
以逗号分隔,以()关闭的形参:(Dog m, Dog n)
箭头标记:->
主体部分则是一个单表达式或者声明代码块。如下是单表达式形式:Integer.compare(m.getWeight(), n.getWeight())
输出:
[a, is, java, site, creek, program]
2,参数类型可以推断
如果参数的类型可以根据上下文推断出来,则可以省略掉类型。
在上面的代码中,参数 m 与 参数 n 可以推测出来是String类型,所以可以省略。这样会让代码变得更加简洁,并且也更像是一个lambda表达式。
String[] arr = { "program", "creek", "is", "a", "java", "site" };
Arrays.sort(arr, (m, n) -> Integer.compare(m.length(), n.length()));
System.out.println(Arrays.toString(arr));
3,存在多行代码
如果sort() 里面的代码一行写不下的话,可以多行,但需要{} 括起来。而且代码应该有明确的返回语句。
String[] arr = { "program", "creek", "is", "a", "java", "site" };
Arrays.sort(arr, (String m, String n) -> {
if (m.length() > n.length())
return -1;
else
return 0;
});
System.out.println(Arrays.toString(arr));
输出:
[program, creek, java, site, is, a]
4,单个参数并可推断类型
Parenthesis can be omitted for single parameter lambda expression when types can be inferred.
单个参数的lambda表达式,在参数类型可以推断出来的时候,可以省略参数 “x” 的括号。
String[] arr = { "program", "creek", "is", "a", "java", "site" };
Stream stream = Stream.of(arr);
stream.forEach(x -> System.out.println(x));
输出:
a
is
java
site
creek
program
5,方法引用
利用方法引用,上面的代码也可以被写成如下形式:
Stream stream = Stream.of(arr);
stream.forEach(System.out::println);
6,没有参数
当一个参数都没有的时候,仍然可以使用lambda表达式。如下:
() -> {for(int i=0; i<10; i++) doSomthing();}
java单个变量的表达式_java中使用Lambda表达式的5种语法相关推荐
- lambda java 表达式_Java中的Lambda表达式
介绍 Lambda函数是 Java 8 附带的一项功能,它是该语言向 函数式编程 迈出的第一步,这是实现各种兼容 范例的 有用功能的普遍趋势. 引入lambda函数的动机主要是为了减少传递给类实例以模 ...
- java8的表达式_java8中的Lambda表达式
lambad表达式是一个匿名函数,既没有函数名的函数.在lambda表达式出现之前,java中更多使用的是匿名内部类所以有些刚刚接触lambda表达式的人会把lambda表达式误认为就是匿名内部类的简 ...
- java 获取键盘点击_Java中获取键盘输入值的三种方法介绍
程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这 ...
- lambda表达式python_Python中的Lambda表达式
Lambda表达式在python程序中是一种很常见的匿名方法的书写形式,它书写起来非常简单,但是牺牲了可读性.下面来看一下Lambda的简单介绍. 语法 lambda [parameter_list] ...
- java static 变量存在哪_Java中的静态方法和静态变量存储在哪里?
小编典典 静态方法(实际上是所有方法)以及静态变量都存储在PermGen堆的部分中,因为它们是反射数据(与类相关的数据,而不与实例相关的数据)的一部分. 更新说明: 请注意,只有变量及其技术值(原始或 ...
- java改变变量编码方式_Java 8中的5个功能将改变您的编码方式
java改变变量编码方式 Java 8在JVM和语言级别都包含了一些非常令人兴奋的功能. 尽管最初为该发行版设想的某些功能已扩展到第9版,或已推出第9版,但实际上有数十个新功能. 许多新添加的内容在编 ...
- 探索Java语言与JVM中的Lambda表达式
2019独角兽企业重金招聘Python工程师标准>>> 转载来源:http://www.admin10000.com/document/1291.html Lambda表达式是自Ja ...
- 使用NetBeans Lambda支持在Java 8中使用Lambda表达式对列表进行排序
作为JSR 335的一部分, Lambda表达式已从Java 8开始引入Java语言,这是Java语言的一个重大变化. 如果您想了解更多关于Lambda表达式以及JSR 335的信息,可以访问以下资源 ...
- 如何开始使用Java中的Lambda表达式
by Luis Santiago 路易斯·圣地亚哥(Luis Santiago) 如何开始使用Java中的Lambda表达式 (How to start working with Lambda Exp ...
最新文章
- SpringMvc多视图整合(jsp、velocity、freemarker)
- 微软宣布新命令行工具 Windows Terminal 和 WSL2
- Win7系统桌面右下角托盘图标不显示原因和解决方法
- 数据结构之二叉排序树
- Python中DataFrame按照行遍历
- 文字与编码的奥妙(上篇)
- BT1120协议详解
- Androidx介绍及迁移
- 蜡笔小新-java-map
- Python计算机二级考试,二十来天的备考,奥利给!【已完结】
- 《Python编程从入门到实践 第二版》第八章练习
- [Vulfocus解题系列] 所复现漏洞总结
- 微信小程序 画布 组件
- 网易云linux版本如何安装包,网易云音乐linux版下载-网易云音乐linux 安装包v1.1.0 官方版 - 极光下载站...
- vue 中 mixins 的使用
- 位与,位或,位异或运算符的理解
- (三)拜占庭将军问题
- SpringCloud-Gataway网关的使用
- 2055046-24-5,Methylamino-PEG5-azide包含叠氮化物基团和甲胺基的PEG
- 微软ERP的二次开发管理10问
热门文章
- VC中将bmp作为资源文件写入EXE或DLL,然后内部调用(转)
- 微软.net framework工具集帮助
- IIS服务器多站点 的 https证书使用443端口 解决方案
- 【报告分享】元宇宙发展研究报告2.0-清华大学.pdf(附下载链接)
- 【报告分享】中国零售业公私域运营手册暨实施指引.pdf(附下载链接)
- 【推荐实践】智能推荐算法在直播场景中的应用
- 推荐系统系列教程之十六:深度和宽度兼具的融合模型
- 【微软推荐】结合知识的推荐系统.pdf(附下载链接)
- github因网络问题无法git clone解决办法
- 一文总结《Effective C++》