2014-10-30 52 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