stream流将List<Map<String,Object>>根据id分组转换成新的list,并且将name转换成list的names
时间: 2024-03-27 11:39:59 浏览: 50
stream流的简单使用
好的,针对您的问题,可以使用Java 8的Stream API来进行操作。首先,需要将List<Map<String,Object>>根据id分组,并转换成一个新的List。可以使用Collectors.groupingBy和Collectors.mapping方法来实现,示例代码如下:
```
List<GroupedObject> groupedObjects = myMapList.stream()
.collect(Collectors.groupingBy(map -> (Integer)map.get("id"),
Collectors.mapping(map -> (String)map.get("name"), Collectors.toList())))
.entrySet().stream()
.map(entry -> new GroupedObject(entry.getKey(), entry.getValue()))
.collect(Collectors.toList());
```
其中,myMapList是需要分组的List<Map<String,Object>>,每个Map对象包含id和name两个属性。执行完上述代码后,会返回一个List<GroupedObject>对象,GroupedObject是存储分组信息的实体类,包含id和names两个属性。
接下来,需要定义GroupedObject实体类,示例代码如下:
```
public class GroupedObject {
private int id;
private List<String> names;
public GroupedObject(int id, List<String> names) {
this.id = id;
this.names = names;
}
public int getId() {
return id;
}
public List<String> getNames() {
return names;
}
}
```
注意,上述代码中的Map中的key和GroupedObject中的属性名需要根据实际情况替换。
阅读全文