java 将List<Object>分组为Map<String,List<String>> 使用stream
时间: 2024-06-16 09:03:17 浏览: 143
怎么在java 8的map中使用stream
在Java中,可以使用Stream API将`List<Object>`分组为`Map<String, List<String>>`。下面是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Object> objects = List.of(
new Object("A", "Apple"),
new Object("B", "Banana"),
new Object("A", "Avocado"),
new Object("C", "Cherry"),
new Object("B", "Blueberry")
);
Map<String, List<String>> groupedMap = objects.stream()
.collect(Collectors.groupingBy(Object::getKey,
Collectors.mapping(Object::getValue, Collectors.toList())));
System.out.println(groupedMap);
}
static class Object {
private String key;
private String value;
public Object(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
}
}
```
在上面的代码中,我们首先创建了一个`List<Object>`对象,其中每个对象都有一个键和一个值。然后,我们使用Stream的`groupingBy`方法将对象按照键进行分组,并使用`mapping`方法将值映射为列表。最后,我们将结果收集到一个`Map<String, List<String>>`中。
阅读全文