String courseIds = packList.stream()
.filter(e -> e.getCourse() != null)
.map(PackageCourse::getCourseId).map(String::valueOf).distinct()
.collect(joining(","));
解释:
首先将packList流化,只有获取stream后才能进行后边的操作,
filter过滤,如果每次循环出来的list中的PackageCourse.getCourse()不为空,获取getCourseId,去重,并以逗号分隔。
------------------------------------------------------------------------------------------------------------------------
String courseIds = courseCatalogList.stream().map(e -> e.getCourseId().toString()).distinct().collect(Collectors.joining(","));
解释:
遍历list,得到一个courseId不重复的以逗号分隔的字符串。
------------------------------------------------------------------------------------------------------------------------
String _subjectIds = (String)userMap.get("subjectIds");
subjectIds = Stream.of(_subjectIds.split(",")) .filter(StringUtils::isNumber).distinct().collect(Collectors.joining(","));
解释:
得到一个subjectIds不重复并且是数字的以逗号分隔的字符串。