Java 简洁的把List<Map<String, Object>>转成List<Map>
时间: 2024-09-27 20:02:43 浏览: 45
在Java中,如果你有一个`List<Map<String, Object>>`类型的列表,它包含了一些嵌套的对象,其中每个元素都是一个键值对的Map。如果你想将这个列表转换为`List<Map>`,即移除所有键值对中的`Object`类型,并保留它们作为独立的Map对象,你可以通过迭代并逐个处理每个元素来完成。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.List;
public List<Map> convert(List<Map<String, Object>> originalList) {
ArrayList<Map> convertedList = new ArrayList<>();
for (Map<String, Object> mapWithObject : originalList) {
// 如果mapWithObject的所有值都是Map,我们可以直接添加到convertedList
if(mapWithObject.values().stream().allMatch(value -> value instanceof Map)) {
convertedList.add((Map) mapWithObject);
} else {
// 如果有非Map类型的值,可以考虑进一步检查和处理,例如忽略或抛出异常
System.out.println("Non-map value found and skipped.");
}
}
return convertedList;
}
```
请注意,这种方法假设原始Map中的所有值都是其他Map。如果不是这种情况,你可能需要根据实际需求调整处理策略。
阅读全文