2013-03-06 72 views
0

將對象的Arraylist轉換爲二維數組時有點麻煩。 arrayList ar包含一些名爲Row的對象。每行包含一些字符串。我希望能夠通過arrayList,訪問每一行並將字符串存儲在一個數組中。如果沒有意義,我真的很抱歉。我甚至覺得很難解釋! 這裏是我到目前爲止有:將對象的ArrayList轉換爲二維數組

public String tableArray[][]; //Array of every applicant 
private ArrayList<Row> ar; 
private Row r; 

public void display() 
{ 
int i, j; 
for (Row r: ar) 
    i = 0; 
    for(String s: r) 
    { 
     tableArray = new String[i][j]; 
     j++; 
    } 
    i++; 
} 

這裏是行級

import java.util.ArrayList; 
import java.lang.String; 

public class Row 
{ 
private String appNumber; 
private String name; 
private String date; 
private String fileLoc; 
private String country; 
private String elementString; 
public String results[]; 

public Row(String appNumber, String name, String date, String fileLoc, String country, Table table) 
{ 
    this.appNumber = appNumber; 
    this.name = name; 
    this.date = date; 
    this.fileLoc = fileLoc; 
    this.country = country; 
    asAString(); 
    table.addApplicant(this); 

} 

public void asAString() 
{ 
    String elementString = appNumber +","+ name +","+ date +","+ fileLoc +","+ country; 
    results = elementString.split(",");} 
} 

感謝您的幫助球員

+3

向我們展示Row類的定義。並解釋我們爲什麼要這麼做。從類型化對象列表到字符串數組的數組看起來倒退了。 – 2013-03-06 21:31:57

+0

順便說一句,你似乎只是創建新的空數組''新字符串[我] [J]'並將它們分配給'tableArray',所以這沒有任何意義 – akostadinov 2013-03-06 21:33:41

+0

你的代碼沒有任何意義,你甚至不使用'行r'。這個數組可以被創建,而不需要List' – iberbeu 2013-03-06 21:42:10

回答

0
final int listSize = list.size(); 
E[][] darr = new E[listSize][]; 
for(int i = 0; i < listSize; i++) { 
    ArrayList<E> sublist = list.get(i); 
    final int sublistSize = sublist.size(); 
    darr[i] = new E[sublistSize]; 
    for(int j = 0; j < sublistSize; j++) { 
     darr[i][j] = sublist.get(j); 
    } 
} 

我發現這個答案here

+3

好,但我認爲這個學生需要指出他的錯誤,而不是在他的作業中粘貼一些代碼。太糟糕了,代碼準備好複製/粘貼每一個簡單的練習。 – akostadinov 2013-03-06 21:36:17

+3

OP沒有列表。他有一個行列表。 – 2013-03-06 21:36:24