java8使用Lambda表达式得到以逗号分隔的ids串

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不重复并且是数字的以逗号分隔的字符串。

你可能感兴趣的:(Java基础)