我正在创建一个array2,即array2 = {i,j},我有另一个2D数组e_list = {}。现在我想将array2附加到e_list。
int[][] G = {{0, 0, 0, 1, 1},
{0, 0, 1, 1, 1},
{0, 1, 0, 0, 0},
{1, 1, 0, 0, 1},
{1, 1, 0, 1, 0},
};
int[][] e_list = {}; //<-initialize 2D array here
for (int i=0; i < 5; i++){
for (int j=0; j < 5; j++){
if (G[i][j] == 1){
int[] array2 = {i,j};
System.out.print(array2[1]);
System.out.print(",");
System.out.println(array2[0]);
//----------------------------//<-- here I want to add this array2 into that 2D array e_list
//this is one of my failed try;
for (int t=1; t <= 6; t++){
for (int tt=0; tt < 1; tt++){
e_list[t][tt] = array2[tt];
}
}
}
}
}
现在代码只是打印array2的第一个和第二个索引。但是我想要这样的东西; e_list = {{3,0},{4,0},...,{1,2}} 我想访问e_list,如e_list [0] [0] = 3,e_list [1] [0] = 4等
我在内部尝试了for循环......但是没有用。它说“java.lang.ArrayIndexOutOfBoundsException:0”
答案 0 :(得分:1)
在为其分配值之前,您需要实际告诉e_list它有多大。像int[][] e_list = new int[5][5];
而不是int[][] e_list = {};
否则e_list将没有大小,因此一旦你尝试在其中写入内容,你就会得到一个数组索引超出范围的异常(你的数组没有大小但是你还在尝试访问里面的东西)
有趣的是,您的//<-initialize 2D array here
评论已经说明了您仍然需要做的事情:D但是写评论而不是实际做某事并不够。
答案 1 :(得分:0)
如果您将e_list
设置为长度5,请将循环更改为小于5而不是等于6!
for (int t=1; t < 5; t++){
for (int tt=0; tt < 1; tt++){
e_list[t][tt] = array2[tt];
}
}
答案 2 :(得分:0)
试试这个:
public static void main(String[] args) {
int[][] G = {{0, 0, 0, 1, 1},
{0, 0, 1, 1, 1},
{0, 1, 0, 0, 0},
{1, 1, 0, 0, 1},
{1, 1, 0, 1, 0},};
int[][] e_list = new int[100][2]; //<-initialize 2D array here
System.out.println("e_list size " + e_list.length);
for (int[] a: e_list) {
System.out.println("a: " + Arrays.toString(a));
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (G[i][j] == 1) {
int[] array2 = {i, j};
// System.out.print(array2[1]);
// System.out.print(",");
// System.out.println(array2[0]);
//----------------------------//<-- here I want to add this array2 into that 2D array e_list
//this is one of my failed try;
for (int t = 0; t < e_list.length; t++) {
int[] tmp= e_list[t];
if (tmp[0] == 0 && tmp[1] == 0) {
e_list[t] = array2;
break;
}
}
}
}
}
for (int[] a: e_list) {
System.out.println("a: " + Arrays.toString(a));
}
}
请注意,您需要事先设置e_list
的正确大小。或者您可以使用一些List并动态添加元素。