Dwuwymiarowa tablica szarpana, ustalanie length

0

Moje zadanie wyglada tak:
Utwórz trzy tablice zmiennych typu int o losowych rozmiarach i wypełnij je loso- wymi wartościami. Następnie utwórz tablicę, której elementami będą przygotowane wcześniej tablice. Wyświetl wszystkie wylosowane wartości wykorzystując utworzoną tablicę dwuwymiarową.

więc muszę to robić jakby krok po kroku. Napisałem coś takiego,

Random r = new Random();

            int[] myArray;
            int[] myArray2;
            int[] myArray3;

            myArray = new int[r.nextInt(10)];
            myArray2 = new int[r.nextInt(10)];
            myArray3 = new int[r.nextInt(10)];

            for (int i = 0; i < myArray.length; i++) {
                myArray[i] = r.nextInt();
            }
            for (int i = 0; i < myArray2.length; i++) {
                myArray2[i] = r.nextInt();
            }
            for (int i = 0; i < myArray3.length; i++) {
                myArray3[i] = r.nextInt();
            }

            int[][] myMainArray = {
                    {myArray.length},
                    {myArray2.length},
                    {myArray3.length},
            };

            for (int i = 0; i < myArray.length; i++) {
                myMainArray[0][i] = myArray[i];
            }
            for (int i = 0; i < myArray2.length; i++) {
                myMainArray[1][i] = myArray2[i];
            }
            for (int i = 0; i < myArray3.length; i++) {
                myMainArray[2][i] = myArray3[i];
            }

            for (int i = 0; i < myMainArray.length; i++) {
                for (int j = 0; j < myMainArray[i].length; j++) {
                    System.out.println(myMainArray[i][j]);
                }

            }

Dostaje taki bląd przy kompilacji:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at Main.main(Main.java:38)

Mysle ze problem leży tutaj:

 int[][] myMainArray = {
                    {myArray.length},
                    {myArray2.length},
                    {myArray3.length},
            };

nie wiem jak ustalić dlugosci tej tablicy szarpanej, pomóżcie proszę

0

O co chodzi z ustalaniem długości? Przecież znasz wymiary czwartej tablicy. Ma pomieścić 10 wartości dla każdej z 3 tablic, więc będzie [3][10].

0

Najpierw tworze 3 tablice jednowymiarowe o losowej dlugosci 0-10. Nastepnie wypelniam je losowymi liczbami. Pozniej chce z nich zrobic jedna tablice dwuwymiarowa myMainArray[3][(tutaj inna dlugosc dla kazdej z 3 poprzednich tablic)], i wlasnie nie wiem jak to zrobic, nieudolnie probowalem tutaj:
int[][] myMainArray = {
{myArray.length},
{myArray2.length},
{myArray3.length},
};

2

Okej, nie zauważyłem, że to ma różną długość. Tak sobie zadeklarujesz taką tablicę:

int[][] myMainArray = new int[3][];
myMainArray[0] = new int[myArray.length];
myMainArray[1] = new int[myArray2.length];
myMainArray[2] = new int[myArray3.length];

edit:
Albo po prostu tak. Bo sama deklaracja powyżej nie przepisze ci magicznie wartości z wcześniejszych tablic:

int[][] myMainArray = { myArray, myArray2, myArray3};

1 użytkowników online, w tym zalogowanych: 0, gości: 1