Java List<Map<String, Object>> 转成 double[][] doubles
时间: 2023-11-11 20:30:45 浏览: 149
内置 str2double 的更快替代:str2doubles 比内置 str2double 更快地将字符串转换为双精度数。-matlab开发
要将Java List<Map<String, Object>>转换为double[][],需要遍历List,然后遍历Map中的键值对,将值转换为double类型,最后将其存储到二维数组中。
以下是一个示例代码:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 假设list中有n个Map对象,每个Map对象包含m个键值对
double[][] doubles = new double[n][m];
for (int i = 0; i < n; i++) {
Map<String, Object> map = list.get(i);
int j = 0;
for (Map.Entry<String, Object> entry : map.entrySet()) {
Object value = entry.getValue();
if (value instanceof Number) {
doubles[i][j] = ((Number) value).doubleValue();
} else {
// 如果值不是Number类型,可以根据实际情况进行处理,比如抛出异常或给一个默认值
throw new IllegalArgumentException("Value must be a number.");
}
j++;
}
}
```
上述代码中,首先定义一个二维数组doubles,大小为n*m,即有n行m列。然后遍历List中的每个Map对象,再遍历Map中的键值对,将值转换为double类型,并存储到doubles中。如果值不是Number类型,抛出异常或者给一个默认值。
需要注意的是,上述代码中只考虑了值为Number类型的情况,如果值为其他类型,需要根据实际情况进行处理。另外,还需要确保List中的每个Map对象的键值对数目相同,否则可能会导致转换失败。
阅读全文