[英]convert ArrayList<Object[]> to Object[]
几天以来,我一直在寻找这个问题,但似乎找不到合适的答案。 所以我有一个以对象(ArrayList)形式的数组ArrayList,其中填充了SQL字符串的结果集。 我的目标是将仅一行的结果转换为一维对象数组。
我已经从该网站尝试了几次研究结果,但是我所获得的唯一知识是如何将一维ArrayList转换为简单数组。 我希望你们能以某种方式帮助我。 谢谢!
我的桌子看起来像这样:
sizeid | diameter
1 | 32
2 | 40
使用SQL命令“ SELECT直径从大小”,我将获得这两个数字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-method:
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;
您可以使用Marko Topolnik建议的方法。
但是,我建议您编写自己的“ Table”类,该类将解析结果集并将其值放入N * M维数组(或List)中,具体取决于您的查询。 这样,您可以存储元信息,例如N或M尺寸的大小等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.