我已經查找了全部回答這個問題,我還沒有看到任何具體說明它。通過二維數組中的子數組列表增加每個其他元素到一個新數組
我寫了一個arraylist的arraylists,我需要通過所有的子列表來增加列表中的其他元素。
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
int sz1=0; // how many questions in the new string array
int ctr=0; // increment through Question to set value of index
String [] Question = new String[sz1];
for(int x=0; x < list.size(); x++){
sz1 = ((list.get(x).size() -1)/2);
for(int y=0; y < list.get(x).size(); y++){
if ((y == 1) || (y % 2 == 1)){
Question[ctr] = list.get(x).get(y); // throws Out of Bounds Exception: 0
ctr++ // add 1 for the next index
}
}
}
我認爲它可能有一些做的innerloop,但我一直沒能弄明白幾個小時:因爲我已經走了這麼遠這是接近。我猜測問題是innerloop正在呼籲大小而不是索引,但我不知道如何糾正這個問題,爲一個二維數組列表。因此,最終,我試圖將父ArrayList的每個子ArrayList中的每個其他字符串存儲到新的字符串數組中。
在此先感謝您提供的任何幫助。
更新 非常感謝迄今爲止的輸入,這裏是我爲此所做的所有代碼。嘗試回答一些提出的問題,據我所知,該列表似乎填寫正確。此外,'列表數組'的輸入是一個文本文件。每個'類別'中的第一行是類別名稱,然後是問題和答案。每個類別由空行分隔。即: 類 問題 回答
新 種類 ...
我有所有這一切想通了,所以現在我需要搶在自己的ArrayList中的每個問題和答案(如@icyitscold指出,謝謝),我試圖通過僅顯示正在工作的循環來簡化它,但最好顯示所有這些循環,以便您可以看到發生了什麼(如@Dukeling指出的那樣)。
所以這裏的代碼:
`public void Read_File() throws FileNotFoundException{
File infile = new File("trivia.txt");
String line = "";
Scanner sr = new Scanner(infile);
int i=0;
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
ArrayList<String> question = new ArrayList<String>();
while (sr.hasNext()){
i++;
list.add(new ArrayList<String>());
while (sr.hasNext()){ // Reads one whole category
line = sr.nextLine();
//System.out.println(line);
if (line.length() == 0)
{break;}
list.get(i-1).add(line); // add line to the array list in that position
}
System.out.println(list);
}
String [] catName = new String[6];
for(int x=0; x < list.size(); x++){ // category array
catName[x] = list.get(x).get(0);}
for(int x=0; x < list.size(); x++){ // questions array
for(int y=0; y < list.get(x).size(); y++){
if ((y == 1) || (y % 2 == 1)){
question.add(list.get(x).get(y)); // throws OB of 0
}
}
}
System.out.println(question);
sr.close();
}`
OOB異常來自Question數組,它的大小爲0 – nitegazer2003
@ nitegazer2003如果我們要將代碼作爲表面值,那麼列表也是空的,因此for循環將不會執行。 – Dukeling
除非您向我們展示將項目添加到列表並增加'sz1'的缺失代碼,否則我們無法爲您提供幫助。有關更多信息,請參見[SSCCE](http://sscce.org/)。 – Dukeling