list<map<string,object>>转成list<object>
时间: 2023-12-03 12:51:14 浏览: 30
可以通过遍历`list<map<string,object>>`,将每个`map`中的所有`value`提取出来,添加到一个新的`list<object>`中,从而实现类型转换。具体代码如下:
```python
list_map = [{'name': 'Tom', 'age': 18, 'gender': 'male'}, {'name': 'Lucy', 'age': 20, 'gender': 'female'}]
list_obj = []
for m in list_map:
for value in m.values():
list_obj.append(value)
```
执行以上代码后,`list_obj`的值为`['Tom', 18, 'male', 'Lucy', 20, 'female']`,即原先`list<map<string,object>>`中所有的`value`都被提取出来,存储到了新的`list<object>`中。
相关问题
List<map<String,Object>>转Map
将 List<Map<String, Object>> 转换为 Map 的方法是通过遍历 List 中的每个 Map 对象,将每个 Map 中的键值对添加到一个新的 Map 对象中。可以使用以下 Java 代码实现:
```
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
// 假设这里已经有数据了
Map<String, Object> result = new HashMap<String, Object>();
for (Map<String, Object> map : list) {
result.putAll(map);
}
```
上述代码中,我们首先定义了一个 List<Map<String, Object>> 类型的变量 list,并向其中添加了一些 Map 数据。然后我们定义了一个空的 HashMap 类型的变量 result,用于存储转换后的结果。接着我们使用 for 循环遍历 list 中的每个 Map 对象,将每个 Map 中的键值对添加到 result 中,最终得到一个转换后的 Map 对象。
Object转换List<Map<String,Object>>
要将Object转换为List<Map<String,Object>>,可以使用Java8的Stream API和lambda表达式来实现。具体步骤如下:
1. 将Object对象转换为Map<String,Object>对象,可以使用反射机制获取对象的属性和值,然后将其存储到Map中。
2. 将Map对象添加到List中。
3. 重复步骤1和步骤2,直到所有的Object对象都被转换为Map对象并添加到List中。
4. 返回List<Map<String,Object>>对象。
下面是一个示例代码:
```
List<Object> objectList = new ArrayList<>();
// 假设objectList中已经有了多个Object对象
List<Map<String,Object>> mapList = objectList.stream()
.map(obj -> {
Map<String,Object> map = new HashMap<>();
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
String key = propertyDescriptor.getName();
Method getter = propertyDescriptor.getReadMethod();
Object value = getter.invoke(obj);
map.put(key, value);
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
})
.collect(Collectors.toList());
```