国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

JAVA 8 StreamAPI 和 lambda表達式 總結(二)

2019-11-08 00:58:00
字體:
來源:轉載
供稿:網友

1.從迭代器到Stream操作

以前我們遍歷一個集合可以用for 循環,iterator迭代器。jdk8新推出了一項特性,Stream語法,用Stream語法可以讓代碼更加簡潔,而且原生支持的并發操作也能提高效率

List<Integer> list = new ArrayList<>();for (int i = 0; i < 100000; i++) { list.add((int) (Math.random() * 100));}int count = 0;for (int i : list) { if (i > 50) count++;}System.out.上面的步驟大致是 一個list先轉換為stream流,filter等方法就相當于對集合里的每個元素進行遍歷然后根據固定條件進行篩選,這些步驟后stream還沒有結束它的生命周期,必須要有一個結束方法結束stream,count()方法可以產生一個結果,以結束stream流。

有人說我調用filter方法對集合處理之后,只想返回處理后的集合,可以用下面的方法進行操作:

List<Integer> collect = list.stream().filter((x) -> x > 50).collect(Collectors.toList());System.out.println("返回的集合個數:" + collect.size());

Stream流作為一個操作流水線,它的執行順序并不是按照代碼的順序來,它只有執行到count方法,當count方法需要過濾后的東西去統計時,才會執行之前filter方法,但是如果用下面的方法,就可以讓stream并行執行count和filter方法。

List<Integer> collect1 = list.parallelStream().filter((x) -> x > 50).collect(Collectors.toList());

parallelStream() 替代了之前的stream()方法。

未完待續


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安庆市| 张家口市| 清流县| 奉新县| 平原县| 肇庆市| 黑水县| 广东省| 渝中区| 林州市| 武定县| 静安区| 望奎县| 崇阳县| 绵阳市| 蒙自县| 浮梁县| 南通市| 穆棱市| 碌曲县| 获嘉县| 庆城县| 海盐县| 民权县| 道真| 灵川县| 马边| 霍城县| 迁安市| 阿图什市| 浙江省| 任丘市| 伊金霍洛旗| 延庆县| 塔城市| 龙游县| 南昌市| 桃源县| 荥经县| 民乐县| 米脂县|