欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

解析Java開(kāi)發(fā)之Lambda表達(dá)式之集合操作詳解

2018-07-11 11:10:59 1643瀏覽

今天扣丁學(xué)堂Java開(kāi)發(fā)給大家整理了關(guān)于Lambda表達(dá)式操作集合的一些方式,其實(shí)主要是基于JAVA8的stream包和function包。下面我們一起來(lái)看一下Java培訓(xùn)之Lambda表達(dá)式之集合操作吧。

Lambda操作集合:Stream操作分為中間操作或者最終操作兩種,最終操作返回一特定類(lèi)型的計(jì)算結(jié)果,而中間操作返回Stream本身,這樣你就可以將多個(gè)操作依次串起來(lái)(鏈?zhǔn)骄幊?。

Stream的創(chuàng)建需要指定一個(gè)數(shù)據(jù)源,比如java.util.Collection的子類(lèi),List或者Set,Map不支持。

Stream的操作可以串行執(zhí)行或者并行執(zhí)行。Stream作為Java8的一大亮點(diǎn),它與java.io包里的InputStream和OutputStream是完全不同的概念。Java8中的Stream是對(duì)集合(Collection)對(duì)象功能的增強(qiáng),它專(zhuān)注于對(duì)集合對(duì)象進(jìn)行各種非常便利、高效的聚合操作(aggregateoperation),或者大批量數(shù)據(jù)操作(bulkdataoperation)。StreamAPI借助于同樣新出現(xiàn)的Lambda表達(dá)式,極大的提高編程效率和程序可讀性。同時(shí)提供串行和并行兩種模式進(jìn)行匯聚操作。


解析Java開(kāi)發(fā)之Lambda表達(dá)式之集合操作詳解


語(yǔ)法格式:

(參數(shù))->{語(yǔ)句塊}

其中只有一個(gè)參數(shù)的化()可以省略

Lambda表達(dá)式可以實(shí)現(xiàn)的操作:

1、中間操作

包括但不局限于:map、filter、distinct、sorted、peek、limit、skip、parallel、unordered等

示例:

  publicclassLambda_Test{
  privateList<Integer>scores=newArrayList<>();
  //map生成的是個(gè)1:1映射,每個(gè)輸入元素,都按照規(guī)則轉(zhuǎn)換成為另外一個(gè)元素
  @Test
  publicvoidtest1(){
  Collections.addAll(scores,newInteger[]{11,22,33,6,2,44});
  //Java8允許你使用::關(guān)鍵字來(lái)傳遞方法(靜態(tài)方法和非靜態(tài)方法)
  //遍歷輸出
  scores.stream().map(n->n*2).forEach(System.out::println);
  }
  //filter通過(guò)一個(gè)predicate接口來(lái)過(guò)濾并只保留符合條件的元素,該操作屬于中間操作
  @Test
  publicvoidtest2(){
  Collections.addAll(scores,newInteger[]{11,22,33,6,2,44});
  //輸出元素為偶數(shù)
  scores.stream().filter(n->n%2==0).forEach(System.out::println);
  }
  //sorted排序是一個(gè)中間操作,返回的是排序好后的Stream
  @Test
  publicvoidtest3(){
  Collections.addAll(scores,newInteger[]{11,22,33,6,2,44});
  //降序排列
  scores.stream().sorted((n1,n2)->n2-n1).forEach(System.out::println);
  }
  }

2、最終操作

包括但不局限于:forEach、toArray、min、max、count、anyMatch、allMatch、noneMatch、findFirst、findAny、iterator等

代碼如下:

  //min最小值需要比較器
  //max最大值需要比較器
  //count元素個(gè)數(shù)無(wú)參
  @Test
  publicvoidtest4(){
  Collections.addAll(scores,newInteger[]{11,22,33,6,2,44});
  //最小值
  System.out.println("最小值:"+scores.stream().min((n1,n2)->n1-n2).get());
  //最大值
  System.out.println("最大值:"+scores.stream().max((n1,n2)->n1-n2).get());
  //計(jì)數(shù)
  System.out.println("元素個(gè)數(shù):"+scores.stream().count());
  }
  //anyMatch只要有任意一個(gè)匹配就煩true
  @Test
  publicvoidtest5(){
  List<String>list=newArrayList<>();
  Collections.addAll(list,newString[]{"qianfeng","java","Android","BgiData","Python"});
  //校驗(yàn)元素內(nèi)容是否包含a
  System.out.println(list.stream().anyMatch(n->n.contains("a")));
  }
  //findFirst總是返回Stream的第一個(gè)元素,或者空
  @Test
  publicvoidtest6(){
  List<String>list=newArrayList<>();
  Collections.addAll(list,newString[]{"qianfeng","java","Android","BgiData","Python"});
  //校驗(yàn)元素內(nèi)容是否包含a
  System.out.println(list.stream().findFirst().get());
  }

以上就是關(guān)于Java開(kāi)發(fā)之Lambda表達(dá)式之集合操作的詳細(xì)介紹,希望對(duì)同學(xué)們參加Java培訓(xùn)有所幫助,想要了解更多內(nèi)容的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢。扣丁學(xué)堂不僅有專(zhuān)業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的Java視頻教程供學(xué)員觀看學(xué)習(xí),想要快速學(xué)習(xí)Java開(kāi)發(fā)技術(shù)的小伙伴快快行動(dòng)吧??鄱W(xué)堂H5技術(shù)交流群:559883758。

扣丁學(xué)堂微信公眾號(hào)



【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“Java開(kāi)發(fā)資訊”的相關(guān)文章>>

標(biāo)簽: Java培訓(xùn) Java視頻教程 Java在線視頻 Lambda表達(dá)式之集合操作

熱門(mén)專(zhuān)區(qū)

暫無(wú)熱門(mén)資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部