2014-04-18 153 views
0

我正在尋找這個問題,因爲天,我似乎無法找到一個正確的答案。 所以我有一個ArrayList的Array對象的形式(ArrayList)填充了一個SQL字符串的結果集。我的目標是將只有一行的結果轉換爲一維的對象數組。convert ArrayList <Object[]> to Object []

我已經嘗試了幾次我的研究成果從這個網站,但我唯一的知識是如何將一維ArrayList轉換爲一個簡單的數組。 我希望你們能在某些方面幫助我。謝謝!

我的表看起來像這樣:

sizeid | diameter 
    1 | 32 
    2 | 40 

隨着SQL命令「選擇直徑尺寸」我會得到這兩個數字32和40,存儲在一個簡單的2×1表。我想讓它們在一維數組中。

的方法來轉換:

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; 
} 
+0

Object [] obj = myArrayList.get(0) – Mik378

+0

不,我想他想要一個數組,其中包含所有單值結果查詢。 – Aioros

+0

eclipse迴應我這個錯誤信息:「type mismatch:can not convert from Object to Object []」 – user3548416

回答

1

顯然,您的getRowData()方法返回List<Object>而它實際上包含數組。雖然這看起來很奇怪,因爲你說它總是返回一個數組列表,我會假設這就是你所擁有的。

你需要一個遍歷這些「對象」的循環,將它們向下轉換爲Object[],並帶上第一個成員。

Object[] sizes = new Object[sizeList.size()]; 
int i = 0; 
for (Object o : sizeList) sizes[i++] = ((Object[]) o)[0]; 
return sizes; 
+0

謝謝Marko!現在工作正常! – user3548416

+0

爲什麼奇怪對象列表中的項是數組?實際上,對象列表中的每一項都表示SQL查詢的結果行:一行可以包含多個值(列):這只是查詢只選擇一列的特殊情況,因此我們只有一個數組一個項目。 – WoDoSc

+0

@Nicola列表中的項目是數組並不奇怪。奇怪的是,該列表的類型是「List '。 –

0

你可以使用什麼馬爾科Topolnik建議的方法。

但是我建議編寫自己的「Table」類,它解析結果集並根據查詢將值放入N * M維數組(或列表)中。這樣你就可以存儲元數據,比如N或M尺寸的大小等等。