开发者

Turning 2 arrays into a two-dimensional array in java

Hi I am trying to take two arrays开发者_开发知识库 and turn them into one 2 dimensional array. However, I keep getting an error:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
 at test5.sum(test5.java:12)
 at test5.main(test5.java:38)

Here is my code:

public class test5 {
    int[][] final23;

    public int[][] sum(int[] x, int[] y) {
        final23 = new int[2][x.length];
        for (int i = 0; i < final23[i].length; i++) {

            final23[1][i] = x[i];
            final23[2][i] = y[i];
        }
        return final23;
    }

    public void print() {
        for (int i = 0; i < final23[i].length; i++) {
            for (int j = 0; j < final23[i].length; j++) {

                System.out.print(final23[i][j] + " ");
            }
        }
    }

    public static void main(String[] args) {
        int l[] = { 7, 7, 3 };
        int k[] = { 4, 6, 2 };
        test5 X = new test5();

        X.sum(k, l);
        X.print();
    }
}

I am not really sure what the problem is. Sorry if the question is dumb, I am new to coding!


The problem is:

final23 [2][i] = y[i];

Java arrays always start at 0. So final23 only has [0] and [1].

Any array with n elements can go from 0 to n-1.


There is also a second problem with your program. You have this loop in both sum and print methods:

for (int i = 0; i < final23[i].length; i++)

In sum method it should be

for (int i = 0; i < final23[0].length; i++)

And in print method

for (int i = 0; i < final23.length; i++)

Otherwise you'll get ArrayIndexOutOfBoundsException again.

Note that the program works correctly only if both input arrays have the same length. This might be ok for your purposes, but keep that in mind.


Try

for (int i = 0; i < final23[i].length; i++)
 {

  final23 [0][i] = x[i];
  final23 [1][i] = y[i];
 }

Remember, all arrays are 0 based, even n-dimensional ones.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜