个人常用 Stream 使用技巧 持续更新
映射并以指定分隔符进行拼接
需求:将角色中的角色名称取出来,并以“,”号分隔的形式将所有角色名称拼接成一个字符串。
实现方案:通过 map()
可以只保留角色名称信息, 通过 Collectors.joining()
可以将角色名称以指定分隔符拼接起来。
java
// 1、准备一些实验数据, 代码不会像注释一样骗人, 所以就不单独对角色类中的字段解释了
List<Role> roleList = new ArrayList<>(3);
roleList.add(new Role(1, "超级管理员"));
roleList.add(new Role(2, "管理员"));
roleList.add(new Role(3, "普通用户"));
// 2、通过 map() 可以只保留角色名称, 通过 Collectors.joining() 可以将角色名称以指定分隔符拼接起来
String result = roleList.stream()
.map(Role::getName)
.collect(Collectors.joining(","));
// 3、输出结果
// 超级管理员,管理员,普通用户
System.out.println(result);
// 1、准备一些实验数据, 代码不会像注释一样骗人, 所以就不单独对角色类中的字段解释了
List<Role> roleList = new ArrayList<>(3);
roleList.add(new Role(1, "超级管理员"));
roleList.add(new Role(2, "管理员"));
roleList.add(new Role(3, "普通用户"));
// 2、通过 map() 可以只保留角色名称, 通过 Collectors.joining() 可以将角色名称以指定分隔符拼接起来
String result = roleList.stream()
.map(Role::getName)
.collect(Collectors.joining(","));
// 3、输出结果
// 超级管理员,管理员,普通用户
System.out.println(result);