一,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));