jdk8 lambda表达式语法(->) 和jdk7的比较

Lambda初体验

下面进入本文的正题–lambda表达式。首先我们看一下什么是lambda表达式。以下是维基百科上对于”Lambda expression”的解释:

 a function (or a subroutine) defined, and possibly called, without being bound to an identifier。

简单点说就是:一个不用被绑定到一个标识符上,并且可能被调用的函数。这个解释还不够通俗,lambda表达式可以这样定义:一段带有输入参数的可执行语句块。先来看看jdk7和jdk8 lambda的表达式的不同实现:

1. 例子1

jdk8 lambda表达式:

<pre name="code" class="java">List<String> names = new ArrayList<>();
Collections.sort(names, (o1, o2) -> o1.compareTo(o2));

or

<pre name="code" class="java" style="color: rgb(102, 102, 102); font-size: 14px; line-height: 15.4px;">names<span style="line-height: 15.4px; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;">.sort((o1, o2) -> o1.compareTo(o2));</span>
 
 
 
 
 
jdk7:
 

List<String> names = <span style="line-height: 15.4px; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;">new ArrayList<>();</span>

Collections.sort(names, new Comparator<String>() {
  @Override
  public int compare(String o1, String o2) {

    return o1.compareTo(o2);

  }

});

or 
<pre name="code" class="html" style="color: rgb(102, 102, 102); font-size: 14px; line-height: 15.4px;"><pre name="code" class="html" style="color: rgb(102, 102, 102); font-size: 14px; line-height: 15.4px;">names<span style="line-height: 15.4px; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;">.sort(new Comparator<String>() {</span>
@Override public int compare(String o1, String o2) { return o1.compareTo(o2); }});
 
 
 




上面两段代码分别是:使用jdk8 lambda表达式(->)来排序和使用jdk7匿名内部类来排序。
 
2.例子2
 
jdk8 lambda表达式:
    btn.setOnAction( 
        event -> System.out.println("Hello World!") 
    );  

 
jdk7:
   btn.setOnAction(new EventHandler<ActionEvent>() { 
        @Override
        public void handle(ActionEvent event) { 
            System.out.println("Hello World!"); 
        } 
    }); 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web3&Basketball

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值