根据用户账号名进行分组
再对数据进行处理
java 8 带来了 stream 与 lamba表达式
能够替代foreach
可以让代码变得简练
可读性更好
维护更加容易
Map<String, List<PersonalChannel>> data =
personalList.stream().collect(Collectors.groupingBy(PersonalChannel::getUserAccount));
//数据处理结果集
List<RsaleData> resultList = new ArrayList<>();
//对分组数据进行遍历
for(List<PersonalChannel> pcList:data.values()){
RsaleData rd = new RsaleData();
rd.setName(pcList.get(0).getName());
rd.setUserAccount(pcList.get(0).getUserAccount());
//只要智联、前程、58
rd.setChannelInfoList(new ArrayList<>(pcList).stream().filter(d ->{
String channel = d.getChannel();
return channel.contains("智联")||channel.contains("前程")||channel.contains("58");
}).collect(Collectors.toList()));
resultList.add(rd);
}