List<HashMap<String, Object>>转List<Map>
时间: 2023-10-29 21:36:47 浏览: 154
可以使用Java的Lambda表达式来实现:
List<HashMap<String, Object>> list = new ArrayList<>();
// 添加数据到list
List<Map<String, Object>> targetList = list.stream().map(map -> (Map<String, Object>) map).collect(Collectors.toList());
// 转换为List<Map>类型
// 返回结果存储在targetList中
相关问题
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());
```
阅读全文