2013-11-22 41 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; 
相关问题