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种语法相关推荐

  1. lambda java 表达式_Java中的Lambda表达式

    介绍 Lambda函数是 Java 8 附带的一项功能,它是该语言向 函数式编程 迈出的第一步,这是实现各种兼容 范例的 有用功能的普遍趋势. 引入lambda函数的动机主要是为了减少传递给类实例以模 ...

  2. java8的表达式_java8中的Lambda表达式

    lambad表达式是一个匿名函数,既没有函数名的函数.在lambda表达式出现之前,java中更多使用的是匿名内部类所以有些刚刚接触lambda表达式的人会把lambda表达式误认为就是匿名内部类的简 ...

  3. java 获取键盘点击_Java中获取键盘输入值的三种方法介绍

    程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这 ...

  4. lambda表达式python_Python中的Lambda表达式

    Lambda表达式在python程序中是一种很常见的匿名方法的书写形式,它书写起来非常简单,但是牺牲了可读性.下面来看一下Lambda的简单介绍. 语法 lambda [parameter_list] ...

  5. java static 变量存在哪_Java中的静态方法和静态变量存储在哪里?

    小编典典 静态方法(实际上是所有方法)以及静态变量都存储在PermGen堆的部分中,因为它们是反射数据(与类相关的数据,而不与实例相关的数据)的一部分. 更新说明: 请注意,只有变量及其技术值(原始或 ...

  6. java改变变量编码方式_Java 8中的5个功能将改变您的编码方式

    java改变变量编码方式 Java 8在JVM和语言级别都包含了一些非常令人兴奋的功能. 尽管最初为该发行版设想的某些功能已扩展到第9版,或已推出第9版,但实际上有数十个新功能. 许多新添加的内容在编 ...

  7. 探索Java语言与JVM中的Lambda表达式

    2019独角兽企业重金招聘Python工程师标准>>> 转载来源:http://www.admin10000.com/document/1291.html Lambda表达式是自Ja ...

  8. 使用NetBeans Lambda支持在Java 8中使用Lambda表达式对列表进行排序

    作为JSR 335的一部分, Lambda表达式已从Java 8开始引入Java语言,这是Java语言的一个重大变化. 如果您想了解更多关于Lambda表达式以及JSR 335的信息,可以访问以下资源 ...

  9. 如何开始使用Java中的Lambda表达式

    by Luis Santiago 路易斯·圣地亚哥(Luis Santiago) 如何开始使用Java中的Lambda表达式 (How to start working with Lambda Exp ...

最新文章

  1. SpringMvc多视图整合(jsp、velocity、freemarker)
  2. 微软宣布新命令行工具 Windows Terminal 和 WSL2
  3. Win7系统桌面右下角托盘图标不显示原因和解决方法
  4. 数据结构之二叉排序树
  5. Python中DataFrame按照行遍历
  6. 文字与编码的奥妙(上篇)
  7. BT1120协议详解
  8. Androidx介绍及迁移
  9. 蜡笔小新-java-map
  10. Python计算机二级考试,二十来天的备考,奥利给!【已完结】
  11. 《Python编程从入门到实践 第二版》第八章练习
  12. [Vulfocus解题系列] 所复现漏洞总结
  13. 微信小程序 画布 组件
  14. 网易云linux版本如何安装包,网易云音乐linux版下载-网易云音乐linux 安装包v1.1.0 官方版 - 极光下载站...
  15. vue 中 mixins 的使用
  16. 位与,位或,位异或运算符的理解
  17. (三)拜占庭将军问题
  18. SpringCloud-Gataway网关的使用
  19. 2055046-24-5,Methylamino-PEG5-azide包含叠氮化物基团和甲胺基的PEG
  20. 微软ERP的二次开发管理10问

热门文章

  1. VC中将bmp作为资源文件写入EXE或DLL,然后内部调用(转)
  2. 微软.net framework工具集帮助
  3. IIS服务器多站点 的 https证书使用443端口 解决方案
  4. 【报告分享】元宇宙发展研究报告2.0-清华大学.pdf(附下载链接)
  5. 【报告分享】中国零售业公私域运营手册暨实施指引.pdf(附下载链接)
  6. 【推荐实践】智能推荐算法在直播场景中的应用
  7. 推荐系统系列教程之十六:深度和宽度兼具的融合模型
  8. 【微软推荐】结合知识的推荐系统.pdf(附下载链接)
  9. github因网络问题无法git clone解决办法
  10. 一文总结《Effective C++》