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}
}
};Wyzwanie
ŁatwyNapisz 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 24Spró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();
}
}
}
}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
1Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DDodawanie i odejmowanie macierzyTablice postrzępioneTablice 3D i większeTypowe wzorce dla tablic 2DPodsumowanie — wszystko o tablicach2HashMap część 1
Czym jest HashMap?Deklarowanie HashMapDostęp do wartościSprawdzanie, czy klucz istniejeModyfikowanie słownikówPodsumowanie — HashMap3HashMap — część 2
Metody HashMapIterowanie za pomocą keySet()Iterowanie za pomocą entrySet()Zagnieżdżona HashMapPowtórka — zarządzanie magazynemPowtórka — operacje na HashMap6Zaawansowany przepływ sterowania
Instrukcje etykietująceWyrażenie switchDopasowywanie wzorcówKlauzule ochronnePowtórzenie — przepływ sterowania9Projekt — licznik unikalnych słów
Wprowadzanie i przechowywanie tekstuPrzetwarzanie słówPoćwicz samodzielnie: Kompilator Java online