过滤筛选出集合中元素属性Status为0的元素

List<LiveStreamVo> liveStreamListWait = liveStreamVo.stream()
        .filter(vo -> (0 == vo.getStatus()))
        .collect(Collectors.toList());

集合中的元素按照某属性字段倒序(本案例为按照时间倒序,默认为升序,倒序加.reversed())

List<LiveStreamVo> liveStreamListWait = liveStreamVo.stream()
        .sorted(Comparator.comparing(LiveStreamVo::getStartTime).reversed())
        .collect(Collectors.toList());

集合中的元素按照某属性进行分组

Map<String, List<ExportActivityOrderVo>> collect = activityOrderVos.stream()
        .collect(Collectors.groupingBy(ExportActivityOrderVo::getActivityId));

List集合转Map结构

Map<String, ActivityMainInfoVo> activityTypeMap = activityMainRData.stream()
        .collect(Collectors.toMap(ActivityMainInfoVo::getId, v -> v));

利用Stream流进行分页

List<ActivityMain> collect = activityMains.stream()
        .skip((page.getCurrent() - 1) * page.getSize())

利用Stream流,获取集合中元素的某一属性,(本案例返回ActivityCode集合)

List<String> activityCodeList= activityMainRData.stream()
        .map(ActivityMainInfoVo::getActivityCode)
        .collect(Collectors.toList());

将某些参数拼接为字符串

String collect = sonProjects.stream()
        .map(obj -> obj.getProjectName() + "(" + obj.getProjectNum() + ")")
        .collect(Collectors.joining("/"));

复杂的流转换 key:业务Id,(key:业务类型,value:文件信息)

Map<String, Map<String, List<AttachmentFileViewDTO>>> = attachmentFileList.stream()
                .collect(Collectors.groupingBy(AttachmentFile::getBusinessId,
                        Collectors.groupingBy(AttachmentFile::getBusinessType,
                                Collectors.collectingAndThen(
                                        Collectors.toList(),
                                        list -> {
                                            List<AttachmentFileViewDTO> viewDTOList = new ArrayList<>();
                                            list.forEach(k->{
                                                AttachmentFileViewDTO viewDTO = new AttachmentFileViewDTO();
                                                viewDTO.setId(k.getId());
                                                viewDTO.setFileName(k.getFileName());
                                                viewDTO.setOriginalFileName(k.getOriginalFileName());
                                                viewDTO.setFileExtension(k.getFileExtension());
                                                // 后缀为图片类型,转base64
                                                if (FileUtils.imageExtension.contains(k.getFileExtension())) {
                                                    viewDTO.setImageBase64(FileUtils.getImageAsBase64(k.getFilePath()));
                                                }
                                                viewDTOList.add(viewDTO);
                                            });
                                            return viewDTOList;
                                        }
                                ))));

Q.E.D.


如人饮水、冷暖自知