Collectors.joining用于将流中元素拼接为字符串,支持无分隔符、指定分隔符、前缀和后缀的拼接方式,适用于如用户姓名带引号输出等实际场景。

在Java中,Collectors.joining 是 java.util.stream.Collectors 类提供的一个静态方法,用于将流(Stream)中的元素拼接成一个字符串。它常用于处理集合中的字符串拼接操作,使用起来简洁高效。
基本用法:简单拼接
使用 Collectors.joining() 可以将字符串流中的元素连接成一个字符串,默认不加任何分隔符。
Listnames = Arrays.asList("Alice", "Bob", "Charlie"); String result = names.stream() .collect(Collectors.joining()); // 输出: AliceBobCharlie System.out.println(result);
使用分隔符
最常见的是传入一个字符串作为分隔符,比如逗号、空格等。
String result = names.stream()
.collect(Collectors.joining(", "));
// 输出: Alice, Bob, Charlie
System.out.println(result);
添加前缀和后缀
你还可以指定前缀和后缀,比如生成SQL中的 IN 条件或JSON数组风格的输出。
立即学习“Java免费学习笔记(深入)”;
String result = names.stream()
.collect(Collectors.joining(", ", "[", "]"));
// 输出: [Alice, Bob, Charlie]
System.out.println(result);
实际应用场景示例
假设有一个用户对象列表,我们想把用户名拼接成带引号的字符串:
class User {
String name;
User(String name) { this.name = name; }
String getName() { return name; }
}
List users = Arrays.asList(new User("Lisa"), new User("Tom"), new User("Jerry"));
String quotedNames = users.stream()
.map(User::getName)
.collect(Collectors.joining("\", \"", "\"", "\""));
// 输出: "Lisa", "Tom", "Jerry"
System.out.println(quotedNames);
基本上就这些。Collectors.joining 使用简单,适合大多数字符串拼接场景,尤其配合 Stream API 能写出清晰、函数式的代码。










