jdk1.8新特性stream流简单操作
1)过滤器使用:
List<ReadVO> authVOS =
readVOs.stream().filter(t -> !userIds.contains(t.getUserId())).collect(Collectors.toList());
解释:通过对readVOs进行stream流操作,过滤条件是,从readVOs里面取出userId属性,与集合userIds进行比较,
过滤掉userId在userIds里面的属性,保留readVOs集合中属性userId不在userIds里面的ReadVO对象;
2)快速生成某个集合对象中某个属性的集合:
List<Long> userIds =
msgUserAuthVOs.stream().map(MsgUserAuthVO::getUserId).collect(Collectors.toList());
解释:从msgUserAuthVOs集合对象中取出userId生成对应userId的集合
3)从list的对象中取出两个属性生成map键值对:
Map<Long,String> map = customVOs.stream()
.collect(Collectors.toMap(CustomVO::getId, CustomVO::getCustomNo, (v1, v2) -> v1));
解释:从customVOs对象中取出id属性作为map的key,customNo属性作为map的value,
第三个属性 (v1, v2) -> v1代表map的key如果重复,则去重,这种流操作,如果出现重复的key而没有做此操作,会报错;