[英]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.