Menu
Coddy logo textTech

Tablice 3D i większe

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 7 z 59.

Tak jak możesz tworzyć tablice 2D (tablice tablic), możesz tworzyć tablice 3D (tablice tablic tablic), tablice 4D i tak dalej. Nazywa się je tablicami wielowymiarowymi.

Tablicę 3D można zwizualizować jako zbiór tablic 2D ułożonych jedna na drugiej, tworzących strukturę przypominającą sześcian. Dostęp do każdego elementu tablicy 3D uzyskuje się za pomocą trzech indeksów: jednego określającego głębokość (którą tablicę 2D), jednego określającego wiersz i jednego określającego kolumnę.

Oto jak deklarujesz i inicjalizujesz tablicę 3D w Javie:

data_type[][][] array_name = new data_type[depth][rows][columns];
  • data_type: Typ elementów, które będzie zawierać tablica.
  • array_name: Nazwa tablicy.
  • depth: Liczba tablic 2D (głębokość).
  • rows: Liczba wierszy w każdej tablicy 2D.
  • columns: Liczba kolumn w każdej tablicy 2D.

Na przykład, aby utworzyć 3-wymiarową tablicę liczb całkowitych o wymiarach 2x3x4, napisz:

int[][][] cube = new int[2][3][4];

Możesz też bezpośrednio zainicjalizować tablicę 3D:

int[][][] cube = {
    {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    },
    {
        {13, 14, 15, 16},
        {17, 18, 19, 20},
        {21, 22, 23, 24}
    }
};
challenge icon

Wyzwanie

Łatwy

Napisz program, który przyjmuje trzy argumenty całkowite: depth, rows i cols. Powinien utworzyć trójwymiarową tablicę liczb całkowitych o podanych wymiarach i zainicjalizować każdy element tablicy iloczynem jego indeksów głębokości, wiersza i kolumny (liczonych od 1).

Na przykład element o indeksach [d][r][c] powinien mieć wartość (d + 1) * (r + 1) * (c + 1).

Na koniec wypisz wynikową tablicę trójwymiarową w konsoli, używając zagnieżdżonych pętli. Wynik powinien wyglądać tak:

Depth 0:
1 2 3 4 
2 4 6 8 
3 6 9 12 
Depth 1:
2 4 6 8 
4 8 12 16 
6 12 18 24

Spróbuj swoich sił

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int depth = scanner.nextInt();
        int rows = scanner.nextInt();
        int cols = scanner.nextInt();

        int[][][] array3D = new int[depth][rows][cols];
        // Napisz swój kod poniżej

        // Wypisz tablicę 3D
        for (int d = 0; d < depth; d++) {
            System.out.println("Depth " + d + ":");
            for (int r = 0; r < rows; r++) {
                for (int c = 0; c < cols; c++) {
                    System.out.print(array3D[d][r][c] + " ");
                }
                System.out.println();
            }
        }
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online