java如何把一个map的list转成对象的list
时间: 2023-05-24 20:03:31 浏览: 763
可以使用Java 8中的Stream API来实现将一个Map的List转换为对象的List。
假设有一个Map类的bean对象,它包含id、name和age三个属性:
```
public class MapBean {
private int id;
private String name;
private int age;
//getter and setter methods
}
```
现在有一个List,它包含多个Map对象,每个Map对象都有id、name和age三个键值对:
```
List<Map<String, Object>> mapList = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("id", 1);
map1.put("name", "张三");
map1.put("age", 20);
mapList.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("id", 2);
map2.put("name", "李四");
map2.put("age", 30);
mapList.add(map2);
```
我们需要将上述的Map List转成包含MapBean对象的List。
使用Stream API实现如下:
```
List<MapBean> beanList = mapList.stream()
.map(map -> new MapBean((int) map.get("id"), (String) map.get("name"), (int) map.get("age")))
.collect(Collectors.toList());
```
其中,map()方法用于将每个Map对象转换成MapBean对象,collect()方法用于将转换后的对象收集到一个List中。
需要特别注意的是,这里的map.get()方法返回的是Object类型,我们需要在转成int和String类型之前进行强制类型转换。同时,由于MapBean类没有无参构造函数,我们需要通过调用有参构造函数来创建对象。