【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

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

原创 2015年11月18日 18:58:52

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!"); 
        } 
    }); 



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

通过字节码分析JDK8中Lambda表达式编译及执行机制

关于Lambda字节码相关的文章,很早之前就想写了,[蜂潮运动]APP 产品的后端技术,能快速迭代,除了得益于整体微服架构之外,语言层面上,也是通过Java8的lambda表达式的运用以及rxJava...

JDK8 里的 lambda使用

JDK8里最引人注意的,就是lambda表达式了。很有意思,也很简单的特性。 lambda表达式在别的语言里已经非常成熟了,解决的主要问题是程序员普遍“懒”的问题~ 不说话,直接上代码吧。 跑完代码里的程序,也能知道lambda的使用了   public class LambdaE

Java JDK7 的安装以及环境变量的配置(Linux and Windows8)

JDK(Java Development Kit)在这里下载: <s

lambda表达式语法

java8的安装 工欲善其器必先利其器,首先安装JDK8。过程省略,大家应该都可以自己搞定。但是有一点这里强调一下(Windows系统):目前我们工作的版本一般是java 6或者java 7,所...

JDK 1.8 预览版 Lambda语法分析(转载)

一、lambda含义 lambda表示数学符号“λ”,计算机领域中λ代表“λ演算”,表达了计算机中最基本的概念:“调用”和“置换”。在很多动态语言和C#中都有相应的lambda语法,这类语法都为了简化代码,提高运行效率。 二、lambda 项目的背景,参考这里。 无论是面向对象语言还是函数式语言,基本数值都可以被动态的封装入程序动作:面向对象语言通过“方法”,函数式语言通过“函数。 介于“方法”和“函数”的定义有很多种,补充下IBM知识库的解释: 在面向对象语言中,方法不是一阶值(First-class value),在函数式语言中,函数是一阶值。在函数
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)