2013-11-22 46 views
0

我有一個ArrayList < String []>,但是如何讓String []回到正常值?Arraylist <String[]>如何訪問?

這就是我得到的(當然還沒有完成),我希望它用我的值返回一個Object [] []。可能嗎?

public Object[][] noName(String[] col) { 
    ArrayList<String[]> arrlist = new ArrayList<String[]>(); 
    for (int i = 0; i < col.length; i++) { 
     arrlist.add(createColumnList(col[i])); 
    } 

// How to get it into an Object[][]? 

    // Something made up.. 
    return new Object[0][0]; 
} 

createColumnList只是在XML

+0

我正在製作JTables,並且使用Object [] [] –

+1

來組織它非常容易。如果是這樣,您可以創建一個二維數組首先不使用ArrayList 。 – KKKCoder

回答

2

這是一個內膽,實際上是:

return arrlist.toArray(new Object[arrlist.size()][]); 

但開始直接與陣列它會更簡單(和更有效):

final Object[][] ret = new Object[col.length][]; 
for (int i = 0; i < col.length; i++) ret[i] = createColumnList(col[i]); 
return ret; 
+0

我不知道代碼是否可以存儲'createColumnList(col [i])'? –

+0

嗨!這很棒! 這可能是我的錯,但我創建JTable中,並用這種方式JTable中看起來是這樣的: COL1 COL1 COL2 COL2 當它需要: COL1 COL2 COL1 COL2 任何快速提示? –

0

首先,存在用於ArrayList的一個.toArray函數來創建從不同列的陣列的方法。 替代地你可以做到這一點。

Object[][] objarr = new Object[arrlist.size()][arrlist.get(0).length] 
     for(int i=0;i<arrlist.size();i++){ 
      for(int j=0;j<arrlist.get(i).size(),j++){ 
      objarr[i][j]=arrlist.get(i)[j]; 
      } 
    } 

這只是簡單地遍歷數組中的每個元素,並將它們放入您的新數組中。如果你想把它放在一個字符串數組中,則將機會對象[] []轉換爲字符串[] []。

我認爲這也應該是可能的,但是對重新排列數組的規則有點曖昧。

Object[][] objarr = new Object[arrlist.size()][]; 
     for(int i=0;i<arrlist.size();i++){ 
      objarr=arrlist.get(i); 
     } 
+0

'j Vlad

+0

兩者都有可能 – Thijser

+1

不可以。 http://ideone.com/jD0cni還缺少'j ++'。 – Vlad

0

你只是要循環和Object數組來存儲。下面是代碼添加到您的評論的地方:

List<String[]> arrList = new ArrayList<String[]>(); 
Object[][] objArray = new Object[ arrList.size() ][ col.length ]; 
for (int i = 0; i < arrList.size(); i++) 
    objArray[ i ] = arrList.get(i); 

我認爲,這將是你想要的。

1

試試吧

final Object[][] obj = new Object[col.length][]; 
for (int i = 0; i < col.length; i++) obj[i] = createColumnList(col[i]); 
return obj; 
相關問題