一. 需求:遍历List集合,集合中的对象的某个字段是以 逗号分割的,把分割后的值保存在Set集合中
普通的写法:
Set<String> cfgPortfolioSet = new HashSet<>(20);
for (CfgPortfolio cfgPortfolio : cfgPortfolioList) {
String compreftmp = cfgPortfolio.getComprefs();
if(!StringTools.isTrimEmpty(compreftmp)){
String[] split = compreftmp.split(",");
for (String s : split) {
cfgPortfolioSet.add(s);
}
}
}
java 8 stream流的写法:
一行代码搞定
Set<String> cfgPortfolioSet = cfgPortfolioList.stream().flatMap(cfgPortfolio -> {
if (StringTools.isTrimEmpty(cfgPortfolio.getComprefs())) {
return null;
}
return Arrays.stream(cfgPortfolio.getComprefs(