用java8 实现对list用key值分组,分组结果为list的某一个字段逗号拼接的字符串
时间: 2025-01-20 17:11:27 浏览: 71
在Java 8中,可以使用Stream API来实现对List按某个字段进行分组,并将每个分组中的另一个字段值用逗号拼接成字符串。以下是一个示例代码,展示了如何实现这一功能:
假设我们有一个`Person`类:
```java
public class Person {
private String groupKey;
private String name;
public Person(String groupKey, String name) {
this.groupKey = groupKey;
this.name = name;
}
public String getGroupKey() {
return groupKey;
}
public String getName() {
return name;
}
}
```
我们有一个`List<Person>`,希望按`groupKey`进行分组,并将每个分组中的`name`字段值用逗号拼接成字符串。
```java
import java.util.*;
import java.util.stream.Collectors;
public class GroupingExample {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Group1", "Alice"),
new Person("Group1", "Bob"),
new Person("Group2", "Charlie"),
new Person("Group2", "David"),
new Person("Group3", "Eve")
);
Map<String, String> groupedResult = people.stream()
.collect(Collectors.groupingBy(
Person::getGroupKey,
Collectors.mapping(Person::getName, Collectors.joining(","))
));
groupedResult.forEach((key, value) -> System.out.println(key + ": " + value));
}
}
```
运行上述代码,输出结果如下:
```
Group1: Alice,Bob
Group2: Charlie,David
Group3: Eve
```
在这个示例中,我们使用了`Collectors.groupingBy`方法按`groupKey`进行分组,并使用`Collectors.mapping`和`Collectors.joining`方法将每个分组中的`name`字段值用逗号拼接成字符串。
阅读全文
相关推荐


















