Java8 Stream流遍历常见用法

一,flatMap

flatmap既可以单一转换也可以一对多/多对多转换,flatmap要求返回Observable,因此可以再内部进行from/just的再次事件分发,一一取出单一对象(转换对象的能力不同)

如adDataVOS里面有个Freq对象属性,而Freq对象属性里又有个List frequency对象集合属性,想通adDataVOS直接

获取其下的所有frequency对象的id集合,而使用flatMap比较合适

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

 二,groupingBy(Collectors.groupingBy)

对于List configDataBeanList集合,构造以ConfigDataBean对象的ruleId进行分组的map对象:

其中key为configDataBean的ruleId, value为ruleId关联的所有的ConfigDataBean对象

Map> configDataMap = configDataBeanList.stream().collect(Collectors.groupingBy(ConfigDataBean::getRuleId));

你可能感兴趣的:(01,JAVA,flatMap,List一对多转换)