真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java8StreamApi中的map和flatMap操作方法是什么-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“Java8 StreamApi中的map和flatMap操作方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Java8 StreamApi中的map和flatMap操作方法是什么”吧!

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、新安網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、商城網(wǎng)站制作、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為新安等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

1.前言

Java 8提供了非常好用的 Stream API ,可以很方便的操作集合。今天我們來探討兩個Stream 中間操作map(Function mapper)flatMap(Function> mapper)

2. map 操作

map 操作是將流中的元素進行再次加工形成一個新流。這在開發(fā)中很有用。比如我們有一個學(xué)生集合,我們需要從中提取學(xué)生的年齡以分析學(xué)生的年齡分布曲線。

放在Java 8 之前 我們要通過新建一個集合然后通過遍歷學(xué)生集合來消費元素中的年齡屬性?,F(xiàn)在我們通過很簡單的流式操作就完成了這個需求。

對應(yīng)的偽代碼:

// 偽代碼 List ages=studentList.stream().map(Student::getAge).collect(Collectors.toList());

3. flatMap 操作

通過上面的例子,map 操作應(yīng)該非常好理解。那么flatMap 是干嘛的呢? 這樣我們把上面的例子給改一下,如果是以班級為單位,提取所有班級下的所有學(xué)生的年齡以分析學(xué)生的年齡分布曲線。這時我們使用上面的方法還行得通嗎?

List> studentGroup= gradeList.stream().map(Grade::getStudents).collect(Collectors.toList());

通過上面的一頓操作,我們只能得到每個班的學(xué)生集合的集合List> 。 我們還需要嵌套循環(huán)才能獲取學(xué)生的年齡數(shù)據(jù),十分不便。如果我們能返回全部學(xué)生的集合List 就方便多了。 沒錯!flatMap 可以搞定!

// flatMap 提取 List map 提取年齡 List ages = grades.stream().flatMap(grade -> grade.getStudents().stream()).map(Student::getAge).collect(Collectors.toList());

正如上面的偽代碼所示,我們使用flatMap 將所有的學(xué)生匯聚到一起。然后再使用map 操作提取年齡。flatMap 不同于map 地方在于map 只是提取屬性放入流中,而 flatMap 先提取屬性放入一個比較小的流,然后再將所有的流合并為一個流。有一種 “聚沙成塔” 的感覺。

到此,相信大家對“Java8 StreamApi中的map和flatMap操作方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


新聞標(biāo)題:Java8StreamApi中的map和flatMap操作方法是什么-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://weahome.cn/article/cccesd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部