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á)式之集合操作吧。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)行匯聚操作。
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); } }
//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。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“Java開(kāi)發(fā)資訊”的相關(guān)文章>>