簡體   English   中英

在Java中將2個數組轉換為二維數組

[英]Turning 2 arrays into a two-dimensional array in java

嗨,我試圖采取兩個數組,並將它們變成一個二維數組。 但是,我一直收到錯誤:

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

這是我的代碼:

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();
    }
}

我不確定問題是什么。 對不起,如果問題是愚蠢的,我是編碼的新手!

問題是:

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

Java數組總是從0開始。所以final23只有[0]和[1]。

任何具有n個元素的數組都可以從0到n -1。

您的程序還存在第二個問題。 sumprint方法都有這個循環:

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

總結方法應該是

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

並在打印方法

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

否則你將再次獲得ArrayIndexOutOfBoundsException

請注意,只有兩個輸入數組具有相同的長度時,程序才能正常工作。 這可能適合您的目的,但請記住這一點。

嘗試

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

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

請記住,所有數組都是基於0的,甚至是n維數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM