stream流根据对象中的某个元素去重、把相同条件的某个不同字段值拼接为一个字符并按规定的符号隔开
学习笔记仅供参考
创建一个类
@ApiModel
@Data
public class TopicList2RspDTO {
/**
* 项目名称
*/
@ApiModelProperty(value = "名称")
private String projectName;
@ApiModelProperty(value = "项目详情")
private String age;
}
去重
public List<TopicList2RspDTO > StreamDeduplicationTest (){
public static void main(String[] args) {
List<TopicList2RspDTO > list = new ArrayList();
list.add(new TopicList2RspDTO ("zhangsan","20"));
list.add(new TopicList2RspDTO ("zhangsan","18"));
list.add(new TopicList2RspDTO ("lisi","12"));
list.add(new TopicList2RspDTO ("meiyoule","15"));
list.add(new TopicList2RspDTO ("evsd","18"));
//去重
ArrayList<TopicList2RspDTO > itemList1=
itemList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(u->u.getProjectName()))),ArrayList::new));
collect1.forEach(System.out::println);
}
}
最后结果只保留一条名为“zhangsan”的数据
把相同条件的某个不同字段值拼接为一个字符并按规定的符号隔开
String participantNames =
meetParticipantMapper.select(MeetParticipant.builder().meetId(tmp.getId()).build()).stream()
.map(MeetParticipant::getStaffName).collect(Collectors.joining(","));
意思为:把id相同的所有名称查询出来以逗号隔开拼接为一个字符串