java8连接List为分隔字符串的方法优化
1)有一个List集合userList,对象User,有属性名称user。以前用的是一个循环来链接名称user为逗号分隔字符串。
StringBuilder sb = new StringBuilder();
for(User user : userList){
if(StringUtils.isNotBlank(user.getUser())){
if(sb.length() ==0){
sb.append(user.getUser());
} else {
sb.append(",").append(user.getUser());
}
}
}
2)后来用stream可以简化一下,将上面的10句缩为2句。还做了去重,判空的预判。
List<String> userNameList = userList.stream().filter(t -> t.getUser() != null).map(User::getUser).distinct().collect(Collectors.toList());
String s = StringUtils.join(userNameList, ",");
3)再后来发现使用stream的集合里面的合并功能,还可以再简化为1句。
String s = userList.stream().filter(t -> t.getUser() != null).map(User::getUser).distinct().collect(Collectors.joining(","));