【发布时间】:2015-05-05 23:07:08
【问题描述】:
谁能告诉我我做错了什么,因为我有这个错误:
线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引: 0, 尺寸: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:653) 在 java.util.ArrayList.get(ArrayList.java:429) 在 javaapplication4.JavaApplication4.main(JavaApplication4.java:41)
ArrayList<List<Cartas>> tabuleiro = new ArrayList<>();
ArrayList <Integer> pos = new ArrayList<>();
pos.add(40);pos.add(50);pos.add(60);pos.add(31);pos.add(41);pos.add(22);pos.add(32);pos.add(42);pos.add(13);pos.add(23);pos.add(33);pos.add(24);pos.add(34);
for(int x=0; x<9; x++){
for(int y=0; y<7; y++){
for (Integer p : pos) {
if (p == (x*10+y)) {
tabuleiro.get(x).set(y, new Cartas(x,y,false));
}
}
}
}
for(int x=0; x<9; x++){
for(int y=0; y<7; y++){
System.out.println(tabuleiro.get(x).get(y).nomeCV);
}
}
【问题讨论】:
-
答案取决于您希望如何将元素插入其中,以及您希望如何阅读它们。然后我们可以帮助您决定如何实施。
-
这个问题比较琐碎。查找有关在 Java 中使用数组的文档/教程。专注于使用二维数组。尽管一旦您知道如何使用一维数组,您就已经大功告成了。二维数组就像矩阵一样工作。
arr[i][j]本质上是i行、j列的值。了解这一点后,请考虑如何将值分配给 2D 数组中的位置以形成您所描述的模式。 -
@VivinPaliath OP 说“我只想知道如何创建双向数组列表”。你说的是数组,不是
ArrayList。 -
Two Dimensional ArrayList 的可能重复项。另见this 和this。
-
另一种方法是使用
HashMap<IntPair, C>并定义您自己的具有两个int值的IntPair类。
标签: java