2013-11-22 4 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

Прежде всего есть функция .toArray для Arraylist. альтернативно вы можете это сделать.

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]; 
      } 
    } 

Это просто перебирает все элементы массива и помещает их в ваш новый массив. Chance Object [] [] в String [] [], если вы хотите поместить его в массив String.

Я думаю, что это также должно быть возможно, но я немного путаюсь по правилам перераспределения массивов.

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

'j Vlad

+0

Оба возможны – Thijser

+1

Nope. 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; 
Смежные вопросы