Java8中flatMap的使用注意事项

如题,平时很少使用flatMap但实际遇到类似场景还是需要flatMap处理会更方便一些,如下图所示代码:

 

 1 /**
 2      * 返回所有的文件code集合
 3      */
 4     private List<String> getFileCodes(List<String> allFileCodes) {
 5         List<String> fileCodeList = Lists.newArrayList();
 6         if (CollectionUtil.isEmpty(allFileCodes)) {
 7             return fileCodeList;
 8         }
 9         return allFileCodes.stream().map(o -> o.split(COMMA)).flatMap(Arrays::stream).collect(Collectors.toList());
10     }

 1 Set<String> sectionNameList = dto.stream().map(ExamineAreaDTO::getSectionName).flatMap(Collection::stream).collect(toSet()); 

其中,allFileCodes是一个list列表里面包含多个字符串,每个字符串是多个字符串逗号分隔的数据,类似a,b,c这种,此时如果要遍历这个list通过逗号切分每个字符串得到所有数据并放入一个list中时,就需要用到flatMap了,上图代码是一个flatMap的使用实例,以此记录flatMap的使用方式避免以后再遇到需要使用flatMap时不知道怎么写

posted @ 2022-05-20 16:24  云翊宸  阅读(70)  评论(0)    收藏  举报