日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java lambda 排序_Java8特性:Lambda表达式之概念篇

發布時間:2024/9/27 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java lambda 排序_Java8特性:Lambda表达式之概念篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java自誕生已經有十幾個年頭了,目前也已經發布了第十三個大版本,其中Java8是常用的版本中最新的一個版本。而Java8最大的特性就是:Lambda表達式、函數式接口和Stream流。

本篇我只介紹Lamda表達式的概念以及簡單使用,至于別的我打算放到另一篇文章中講,否則會導致文章太過臃腫。廢話不多說,下面進入正題。

對于Lambda表達式來說,Java是在JDK8之后引入的。其目的是將一段代碼作為參數進行傳遞,其格式為:

(參數列表) -> {邏輯代碼塊}

在沒有Lambda表達式的日子里,為了將一段代碼作為參數傳遞,我們不得不使用對象來實現。但是自從Lambda表達式有了之后,我們就可以跟過去的方式說再見。

下面我寫一個簡單的例子給大家感受感受。本例子的作用是調用Collections的sort的方法對一個List集合進行降序排序。因為默認的排序方式是升序的,所以我們需要傳入自定義的比較器。

首先先來看一些非Lambda表達式方式的實現:

非Lambda方式實現

接著再來看看使用Lambda表達式的方式實現:

我這個例子的目的是為了實現一個整型集合的倒序排列。從上圖可以看出,使用Lambda表達式方式實現明顯要比接口實現類對象方式簡潔得多。

那么使用Lambda和不使用Lambda只是這種區別么?不,還有一個區別。那就是編譯后是否會生成額外的內部類文件。

不使用Lambda表達式的時候用“javac”編譯后效果如下:

使用Lambda表達式時候用“javac”命令編譯后效果如下:

對比后發現,使用Lambda方式后還可以避免生成多余的類文件。

既然,使用Lambda表達式這么爽,那么是不是可以無限制使用呢?不,使用Lambda表達式還是有限制條件的,其限制條件就是只能是運用在使用函數式接口的地方。關于函數式接口的內容大家可以自己在網上看相關資料或查看我的另一篇文章:Java8特性:函數式接口之概念篇,這里就不過多提及了。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java lambda 排序_Java8特性:Lambda表达式之概念篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。