过滤筛选出集合中元素属性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());

集合中的元素排序 (规则:自定义排序->日期时间倒排)

            //排序规则
            List<Integer> list = Arrays.asList(1, 0, 2);
            //先按照自定义 状态(1 0 2)排序,再按照 日期时间 进行倒排
            liveStreamVo = liveStreamVo.stream()
                    .sorted(Comparator.comparing(LiveStreamVo::getStatus, (o1, o2) -> {
                        int i = list.indexOf(o1);
                        int j = list.indexOf(o2);
                        return j - i;
                    }).thenComparing(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());

Q.E.D.


如人饮水、冷暖自知