2014-10-30 51 views
2

當我嘗試使用數組打印出來的陣列打印出我的2D的ArrayList它說:「陣列解決不了」聲明數組不工作的Java

如果這不是你怎麼想打印出一個ArrayList那你覺得怎麼樣?

這裏是我的代碼:

package assignment2; 
import java.util.*;; 

public class BadmintonScoring { 
static final int PLAYER1 = 1; 
static final int PLAYER2 = 2; 

public static void main(String[] args){ 
ArrayList<Integer>[][] list = new ArrayList[2][26]; 
list[0][0] = new ArrayList<Integer>(); 
list[1][1].add(1); 
list[2][2].add(2); 

for(ArrayList<Integer>[] arr : list){ 
    System.out.println(Arrays.toString(arr)); 
} 

} 
} 
+2

聽起來像你沒有'java.util.Arrays'的導入... – 2014-10-30 22:54:34

+0

我沒有導入它,我導入了整個導入java.util。*; – 2014-10-30 22:57:05

+1

很難說,當你沒有在你的文章中包含它。這就是爲什麼發佈*完整*程序很有用。通過正確的導入,您的代碼爲我編譯(帶有泛型警告)。 – 2014-10-30 23:02:51

回答

2

你忘了這些進口

import java.util.ArrayList; 
import java.util.Arrays; 

在下面一行你Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 0

list[0][0].add(5, 6); 

爲什麼

你所用的附加功能,試圖整數添加到您的二維數組列表

公共無效添加(INT指數,E元素)

插入指定的元素在這個指定的位置名單。 將當前位於該位置的元素(如果有)和任何後續元素向右移(將其中的一個添加到其索引)。

您沒有添加任何元素0到4,所以基本上它們都是空的。之後,您將Integer添加到索引5,通過例外爲您。

末點

for(ArrayList<Integer>[] arr : list){ 
    System.out.println(Arrays.toString(list)); 
} 

你需要打印出這將是你的2D ArrayList中的每個元素改編

for(ArrayList<Integer>[] arr : list){ 
    System.out.println(Arrays.toString(arr)); 
} 
+0

實際上,你所說的'2'與他使用'add'的ArrayList沒有任何關係。注意他在常規數組上使用位置'[0,0]'。你是對的,他會得到一個IndexOutOfBoundsException,但錯誤的原因。這是因爲在索引6的ArrayList中沒有元素,因爲它是空的來啓動。 – 2014-10-30 23:13:44

+0

雅我想通了,我正在更新我的答案 – 2014-10-30 23:14:05

+0

@ mikeyaworski是我的答案更好? – 2014-10-30 23:18:03

2
for(ArrayList<Integer>[] arr : list){ 
    System.out.println(Arrays.toString(list)); 
} 

應該是:

for(ArrayList<Integer>[] arr : list){ 
    System.out.println(Arrays.toString(arr)); 
} 
+0

+1爲首先遇到這個問題 – 2014-10-30 23:43:16

1

你有幾個錯別字

public static void main(String[] args) { 
    ArrayList<Integer>[][] list = new ArrayList[2][26]; 
    list[0][0] = new ArrayList<Integer>(); 
    list[0][0].add(5); 
    list[0][0].add(6); 

    for (ArrayList<Integer>[] arr : list) { 
     System.out.println(Arrays.toString(arr)); 
    } 
} 
+0

我試過這個,但數組仍然無法解決,我導入java.util。*; – 2014-10-30 23:17:14

+0

當然,你需要做import java.util.ArrayList;和 import java.util.Arrays; – 2014-10-30 23:24:38