Java 8 lambda初试示例详解

 更新时间:2017年04月22日 16:12:02   作者:方志朋  
这篇文章主要介绍了Java 8 lambda初试示例详解,需要的朋友可以参考下

表达式本质上是一个匿名方法。让我们来看下面这个例子:

public int add(int x, int y) {
  return x + y;
}

转成λ表达式后是这个样子:

(int x, int y) -> x + y;

参数类型也可以省略,Java编译器会根据上下文推断出来:

(x, y) -> x + y; //返回两数之和

或者

(x, y) -> { return x + y; } //显式指明返回值

可见λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块。

下面这个例子里的λ表达式没有参数,也没有返回值(相当于一个方法接受0个参数,返回void,其实就是Runnable里run方法的一个实现):

() -> { System.out.println("Hello Lambda!"); }

如果只有一个参数且可以被Java推断出类型,那么参数列表的括号也可以省略:

c -> { return c.size(); }
public static void main(String[] args) {
    Arrays.asList( "a", "b", "d" ).forEach( e -> {
      System.out.print( e +"\n");
    } );
    System.out.print( "\n--------------------------" );
    Arrays.asList( "a", "b", "d" ).sort( ( e1, e2 ) -> e1.compareTo( e2 ) );
    /**
     * 可见λ表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块。
     * 下面这个例子里的λ表达式没有参数,也没有返回值(相当于一个方法接受0个参数,返回void,其实就是Runnable里run方法的一个实现):
     * () -> { System.out.println("Hello Lambda!"); }
     */
    Thread t2=new Thread(()->{
      System.out.println("This is from an anonymous method (lambda exp).\n");
    });
    t2.start();
    /**
     * 迭代LIST
     */
    List<String> listStr=new ArrayList<>();
    listStr.add("sss");
    listStr.add("1111");
    listStr.forEach(e->{
      if(e.equals("sss")){
        System.out.print(e);
      }
    });
  }

以上所述是小编给大家介绍的Java 8 lambda初试,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java Scoket实现双向通信代码详解

    Java Scoket实现双向通信代码详解

    这篇文章主要介绍了Java Scoket实现双向通信代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • SpringBoot入门编写第一个程序Helloworld

    SpringBoot入门编写第一个程序Helloworld

    这篇文章是Springboot入门篇,来教大家编写第一个Springboot程序Helloworld,文中附有详细的示例代码,有需要的同学可以借鉴参考下
    2021-09-09
  • Java基于jdbc实现的增删改查操作示例

    Java基于jdbc实现的增删改查操作示例

    这篇文章主要介绍了Java基于jdbc实现的增删改查操作,结合实例形式分析了java使用jdbc进行数据库的连接、增删改查等基本操作技巧,需要的朋友可以参考下
    2019-01-01
  • java URL 获取PHP JSON 数据

    java URL 获取PHP JSON 数据

    这篇文章主要介绍了java URL 获取PHP JSON 数据,需要的朋友可以参考下
    2016-04-04
  • Java Stream.reduce()用法详细解析

    Java Stream.reduce()用法详细解析

    Stream API提供了丰富的中间函数,归并函数和终端函数,这些函数还支持并行化执行,下面这篇文章主要给大家介绍了关于Java Stream.reduce()用法的相关资料,需要的朋友可以参考下
    2022-12-12
  • java枚举类的属性、方法和构造方法应用实战

    java枚举类的属性、方法和构造方法应用实战

    这篇文章主要介绍了java枚举类的属性、方法和构造方法应用,结合实例形式分析了java枚举类的定义、构造及相关应用操作技巧,需要的朋友可以参考下
    2019-08-08
  • java 工厂模式的讲解及优缺点的介绍

    java 工厂模式的讲解及优缺点的介绍

    这篇文章主要介绍了java 工厂模式的讲解及优缺点的介绍的相关资料, 简单工厂模式,又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式,需要的朋友可以参考下
    2017-08-08
  • Java使用HttpClient实现Post请求实例

    Java使用HttpClient实现Post请求实例

    本篇文章主要介绍了Java使用HttpClient实现Post请求实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 详解Java如何获取文件编码格式

    详解Java如何获取文件编码格式

    这篇文章主要介绍了详解Java如何获取文件编码格式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • Netty分布式高性能工具类同线程下回收对象解析

    Netty分布式高性能工具类同线程下回收对象解析

    这篇文章主要为大家介绍了Netty分布式高性能工具类同线程下回收对象解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03

最新评论