加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

让代码更精简 细说Java 8 Lambda表达式

发布时间:2017-08-09 06:15:18 所属栏目:教程 来源:核子可乐编译
导读:Java 8中的Lambda表达式给该语言带来了一系列改进。这种新型表达式的出现让一部分代码更易于查看及编写,特别是对于那些能够以函数形式表达的代码而言。Lambda表达式还为Java语言带来更加丰富的表达能力,并使多种操作在运行时当中获得更为高效的执行效果。通
副标题[/!--empirenews.page--]

        【 技术】作为一大饱受诟病的缺陷,Java作为一款编程语言由于太过啰嗦而受到开发者们的抱怨乃至指责,以至于我们不得不编写大量代码以保证每一项既定功能切实得以实现。而Lambda表达式的出现在一部分常见情况下解决了这个难题,同时也让Java在与竞争对手C#的多年缠斗当中占据了一定程度上的优势地位。

  Lambda表达式伴随着Java SE 8的发布一同到来,就笔者个人而言它也算得上该版本中最值得关注的新增语言特性。Lambda表达式带来一种相对清晰且更为简洁的方法接口表达方式,同时也给Java Collection库带来了相当显著的改进,从而大大简化了对Collection的遍历、过滤以及数据提取流程。由Lambda表达式所带来的新型并发特性还提高了Java运行时在多核心环境下的性能表现。

C#及VB.Net中的Lambda
▲细说Java 8 Lambda表达式

  笔者曾经听到一些程序员表达的担忧之情,他们怀疑Lambda表达式会给Java的函数编程结构造成影响、进而损害其面向对象属性。事实上类似的说法早在六、七年之前就曾经在.Net开发领域闹得沸沸扬扬。历史经验告诉我们,尽管存在不同的声音、C#语言仍然借此实现了毋庸置疑的改进效果。

  C#及VB.Net中的Lambda表达式与LINQ

  Lambda表达式随Visual Studio 2008的发布而正式被纳入C#与VB.Net,其主要作用在于支持LINQ(即语言集成查询)。Lambda表达式是一种匿名函数,大家可以利用它创建委托或者表达树状范式。在C#当中,要想创建一条Lambda表达式,大家需要在Lambda运算符=>的左侧输入参数(如果有的话),并在另一侧输入表达式或者语句内容。举例来说,Lambda表达式x=>x * x的意思是指定一个名为x的参数,其返回值为x的平方。在VB.Net方面,我们则可以使用匿名Function或者Sub定义来创建Lambda表达式。

  LINQ是一系列函数的统称,同样在Visual Studio 2008中与用户首次见面,它为C#以及Visual Basic语言语法带来了多项查询功能。LINQ在对SQL数据库、XML文档、ADO.Net数据集(可能由SQL数据库产生、也可能不是)以及.Net集合、文件与字符串等进行查询时功效卓著。最后要说的是LINQ to Object,这条术语是指利用LINQ对任意IEnumerable或者IEnumberable<T>集合进行直接查询。Lambda在基于方法的LINQ查询当中被作为指向标准查询运算符方法——例如where——的参数。

  LINQ与Lambda表达式已经在C#开发业界得到了广泛的认同与使用。我期待着Lambda表达式及其应用能够以同样的发展轨迹在Java开发业界占据一席之地。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!