Java8 Stream流遍歷常見用法

一,flatMap

flatmap既可以單一轉換也可以一對多/多對多轉換,flatmap要求返回Observable,因此可以再內部進行from/just的再次事件分發,一一取出單一對象(轉換對象的能力不同)

如adDataVOS裏面有個Freq對象屬性,而Freq對象屬性裏又有個List<Frequency> frequency對象集合屬性,想通adDataVOS直接

獲取其下的所有frequency對象的id集合,而使用flatMap比較合適

List<Integer> idList = adDataVOS.stream().flatMap(adDataVO-> adDataVO.getFreq().getFrequency().stream().map(Frequency::getId)

 二,groupingBy(Collectors.groupingBy)

對於List<ConfigDataBean> configDataBeanList集合,構造以ConfigDataBean對象的ruleId進行分組的map對象:

其中key爲configDataBean的ruleId, value爲ruleId關聯的所有的ConfigDataBean對象

Map<Integer, List<ConfigDataBean>> configDataMap = configDataBeanList.stream().collect(Collectors.groupingBy(ConfigDataBean::getRuleId));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章