我几天来一直在寻找这个问题,但似乎找不到正确的答案。 所以我有一个对象(ArrayList)形式的数组的ArrayList,其中填充了SQL字符串的结果集。我的目标是将只有一行的结果转换为一维对象数组。
我已经多次尝试从这个网站得到的研究结果,但我所学到的唯一知识就是如何将一维 ArrayList 转换为简单数组。 我希望你们能在某些方面帮助我。谢谢!
我的 table 是这样的:
sizeid | diameter
1 | 32
2 | 40
通过 SQL 命令“从大小中选择直径”,我将获得这两个数字 32 和 40,并将其存储在一个简单的 2x1 表中。
| 32 |
| 40 |
现在我想将它们放入一维数组中。
转换方法:
private Object[] getSizes() {
query = new SQLquery();
query.setSQLstring("SELECT diameter FROM size");
query.runQuery();
List<Object> sizeList = query.getRowData();
Object[] sizes = new Object[sizeList.size()];
// here I want to convert the List to an array..
return sizes;
}
SQLquery类的ArrayList生成方法:
public void outputResult() {
try {
if (result != null) {
ResultSetMetaData meta = result.getMetaData();
columns = meta.getColumnCount();
columnNames = new Object[columns];
for (int i=1; i<=columnNames.length; i++) {
columnNames[i-1] = meta.getColumnName(i);
}
List<Object> rowData = new ArrayList<Object>();
while (result.next()) {
Object[] row = new Object[columns];
for (int j=0; j<= columns; j++) {
row[j-1] = result.getString(j);
}
rowData.add(row);
}
}
} catch (SQLexception e) {
System.out.println(e);
}
}
以及 SQLquery 类的简单 get 方法:
public List<Object> getRowData() {
return rowData;
}
最佳答案
显然,你的getRowData()
方法返回 List<Object>
而它实际上包含数组。虽然这看起来很奇怪,因为你说它总是返回一个数组列表,但我假设这就是你所拥有的。
您需要一个循环来遍历这些“对象”,将它们向下转换为 Object[]
,并选取第一个成员。
Object[] sizes = new Object[sizeList.size()];
int i = 0;
for (Object o : sizeList) sizes[i++] = ((Object[]) o)[0];
return sizes;
关于java - 将 ArrayList<Object[]> 转换为 Object[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23152199/