multidimensional arrays java 2d
Ten samouczek dotyczący tablic wielowymiarowych w języku Java omawia, jak inicjować, uzyskiwać dostęp i drukować tablice 2D i 3D w języku Java z przykładami składni i kodu:
Do tej pory omówiliśmy główne koncepcje dotyczące tablic jednowymiarowych. Te tablice przechowują pojedynczą sekwencję lub listę elementów tego samego typu danych.
Java obsługuje również tablice z więcej niż jednym wymiarem i są one nazywane tablicami wielowymiarowymi.
=> Sprawdź WSZYSTKIE samouczki Java tutaj.
Tablice wielowymiarowe Java są ułożone jako tablice tablic, tj. Każdy element tablicy wielowymiarowej jest inną tablicą. Reprezentacja elementów jest w wierszach i kolumnach. W ten sposób można uzyskać całkowitą liczbę elementów w tablicy wielowymiarowej, mnożąc rozmiar wiersza przez rozmiar kolumny.
Więc jeśli masz dwuwymiarową tablicę 3 × 4, to całkowita liczba elementów w tej tablicy = 3 × 4 = 12.
W tym samouczku zbadamy tablice wielowymiarowe w Javie. Najpierw omówmy dwuwymiarowe tablice, zanim przejdziemy do tablic trójwymiarowych lub więcej.
Czego się nauczysz:
- Tablica dwuwymiarowa
- Tablice wielowymiarowe Java
- Tablice trójwymiarowe w Javie
- Często Zadawane Pytania
- Wniosek
Tablica dwuwymiarowa
Najprostszą z wielowymiarowej tablicy jest tablica dwuwymiarowa. Prosta definicja tablic 2D to: Tablica 2D to tablica jednowymiarowych tablic.
W Javie dwuwymiarowa tablica jest przechowywana w postaci wierszy i kolumn i jest reprezentowana w postaci macierzy.
Ogólna deklaracja dwuwymiarowej tablicy to:
data_type () () array_name;
Tutaj,
data_type = typ danych elementów, które będą przechowywane w tablicy.
nazwa_tablicy = nazwa dwuwymiarowej tablicy.
Możesz utworzyć szyk 2D używając nowego w następujący sposób:
data_type () () array_name = new data_type(row_size)(column_size);
Tutaj,
row_size = liczba wierszy, które będzie zawierać tablica.
rozmiar_kolumny = liczba kolumn, które będzie zawierać tablica.
Więc jeśli masz tablicę 3 × 3, oznacza to, że będzie miała 3 wiersze i 3 kolumny.
Układ tej tablicy będzie taki, jak pokazano poniżej.
Rzędy kolumny | Kolumna 1 | Kolumna 2 | Kolumna 3 |
---|---|---|---|
Row1 | (0,0) | (0,1) | (0,2) |
Row2 | (1.0) | (1,1) | (1, 2) |
Row3 | (2.0) | (2.1) | (2.2) |
Jak pokazano powyżej, każde przecięcie wiersza i kolumny przechowuje element tablicy 2D. Więc jeśli chcesz uzyskać dostęp do pierwszego elementu w tablicy 2d, to jest on określony przez (0, 0).
Uwaga że ponieważ rozmiar tablicy wynosi 3 × 3, możesz mieć 9 elementów w tej tablicy.
Tablicę liczb całkowitych o nazwie „myarray” składającą się z 3 wierszy i 2 kolumn można zadeklarować w sposób przedstawiony poniżej.
int ()() myarray = new int(3)(2);
Po zadeklarowaniu i utworzeniu tablicy nadszedł czas, aby zainicjować ją wartościami.
Zainicjuj tablicę 2d
Istnieje wiele sposobów inicjalizacji tablicy 2d wartościami. Pierwsza metoda to tradycyjna metoda przypisywania wartości do każdego elementu.
Ogólna składnia inicjalizacji to:
array_name(row_index)(column_index) = value;
Przykład:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Powyższe instrukcje inicjalizują wszystkie elementy podanej tablicy 2d.
Umieśćmy to w programie i sprawdźmy wynik.
public class Main { public static void main(String() args) { int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; System.out.println('Array elements are:'); System.out.println(myarray(0)(0) + ' ' +myarray(0)(1)); System.out.println(myarray(1)(0) + ' ' +myarray(1)(1)); } }
Wynik:
Ta metoda może być przydatna, gdy wymiary są mniejsze. Wraz ze wzrostem wymiaru tablicy trudno jest zastosować tę metodę indywidualnej inicjalizacji elementów.
Następną metodą inicjalizacji tablicy 2D w Javie jest inicjalizacja tablicy tylko w momencie deklaracji.
Ogólna składnia tej metody inicjalizacji jest następująca:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Na przykład, jeśli masz tablicę 2 × 3 typu int, to możesz zainicjować go deklaracją jako:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Poniższy przykład przedstawia deklarację tablicy 2d z inicjalizacją.
public class Main { public static void main(String() args) { //2-d array initialised with values int()() intArray = { { 1, 2 }, { 3, 4 },{5,6}}; //print the array System.out.println('Initialized Two dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { System.out.print(intArray (i)(j) + ' '); } System.out.println(); } } }
Wynik:
W powyższym programie tablica jest inicjalizowana w momencie samej deklaracji, a następnie wyświetlane są wartości.
Możesz także zainicjować lub przypisać wartości do tablicy 2d za pomocą pętli, jak pokazano poniżej.
int()() intArray = new int(3)(3); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; } }
Poniższy program implementuje powyższy kod.
public class Main { public static void main(String() args) { //declare an array of int int()() intArray = new int(3)(3); System.out.println('Array elements are:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; //assign values to each array element System.out.print(intArray(i)(j) + ' '); //print each element } System.out.println(); } } }
Wynik:
Każdy element w powyższej tablicy 2d ma przypisaną wartość „i + 1”. To sprawia, że każdy element w wierszu tablicy zawiera tę samą wartość.
Uzyskaj dostęp i drukuj macierz 2D
Wiesz już, że inicjalizując tablicę 2d, możesz zainicjować poszczególne elementy tablicy wartością. Odbywa się to za pomocą indeksu wiersza i indeksu kolumny tablicy w celu uzyskania dostępu do określonego elementu.
Podobnie jak w przypadku inicjalizacji, możesz również uzyskać dostęp do wartości pojedynczego elementu i wydrukować go użytkownikowi.
Ogólna składnia dostępu do elementu tablicy to:
data_typeval = array_name(row_index)(column_index);
Gdzie nazwa_tablicy to tablica, do której uzyskiwany jest dostęp, a typ_danych jest taki sam, jak typ danych tablicy.
Poniższy program przedstawia sposób uzyskiwania dostępu do poszczególnych elementów i ich drukowania.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = {{1,2},{4,8}}; //Access individual element of array intval = intArray(0)(1); //print the element System.out.println('Accessed array value = ' + val); System.out.println('Contents of Array:' ); //print individual elements of array System.out.println(intArray(0)(0) + ' ' + intArray(0)(1)); System.out.println(intArray(1)(0) + ' ' + intArray(1)(1)); } }
Wynik:
jak stworzyć tablicę obiektów
W ten sposób można łatwo uzyskać dostęp do poszczególnych elementów tablicy i wydrukować je za pomocą indeksów wierszy i kolumn zawartych w nawiasach kwadratowych (()).
Możesz wydrukować całą tablicę naraz w formacie tabelarycznym, jak pokazano powyżej (zwanym również formą macierzową), używając pętli for. Ponieważ jest to tablica dwuwymiarowa, potrzebujesz do tego dwóch pętli. Jedna pętla do iteracji przez rzędy, tj. Pętla zewnętrzna i pętla wewnętrzna do przechodzenia przez kolumny.
W dowolnym momencie (bieżąca iteracja) konkretny element tablicy jest określony przez,
nazwa_tablicy (i) (j);
Gdzie „i” to bieżący wiersz, a „j” to bieżąca kolumna.
Poniższy program przedstawia drukowanie tablicy 2d przy użyciu pętli „for”.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i*j; //assign value to each array element System.out.print(intArray (i)(j) + ' '); } System.out.println(''); } } }
Wynik:
W powyższym programie inicjalizowana jest tablica 2d, a następnie elementy są drukowane przy użyciu dwóch pętli for. Zewnętrzna pętla służy do śledzenia wierszy, a wewnętrzna pętla for służy do śledzenia kolumn.
Długość tablicy 2d Java
Tablica dwuwymiarowa jest definiowana jako tablica tablicy jednowymiarowej. Tak więc, gdy potrzebujesz długości tablicy 2D, nie jest to tak proste, jak w przypadku tablicy jednowymiarowej.
Właściwość length dla dwuwymiarowej tablicy zwraca liczbę wierszy w tablicy. Każdy wiersz to jednowymiarowa tablica. Wiesz już, że dwuwymiarowa tablica składa się z wierszy i kolumn. Rozmiar kolumny może się różnić w każdym wierszu.
W związku z tym można uzyskać rozmiar każdego wiersza, przechodząc przez liczbę wierszy.
Poniższy program podaje długość tablicy (liczbę wierszy), a także rozmiar każdego wiersza.
public class Main { public static void main(String() args) { //initialize 2-d array int()() myArray = { { 1, 2, 3 }, { 4, 5 } }; System.out.println('length of array:' + myArray.length); //number of rows for(int i=0;i Wynik:
Zdefiniowana powyżej dwuwymiarowa tablica ma dwa wiersze. Każdy wiersz to jednowymiarowa tablica. Pierwsza tablica 1D ma 3 elementy (3 kolumny), podczas gdy drugi wiersz ma 2 elementy.
Poniższy program w języku Java przedstawia użycie właściwości length do wydrukowania tablicy 2D.
public class Main { public static void main(String() args) { //two dimensional array definition int()() myarray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i Wynik:
Jak już wspomniano, zewnętrzna pętla reprezentuje rzędy, a wewnętrzna pętla for reprezentuje kolumny.
Uwaga: Warunek kończący w obu pętlach używa właściwości length, najpierw do iteracji w wierszach, a następnie w kolumnach.
Tablice wielowymiarowe Java
Widzieliśmy już dwuwymiarowe tablice. Java obsługuje tablice z więcej niż dwoma wymiarami.
Ogólna składnia tablicy wielowymiarowej jest następująca:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Tutaj,
d1, d2… dn = wymiary wielowymiarowej tablicy
(d1_size) (d2_size)… (dn_size) = odpowiednie rozmiary wymiarów
data_type = typ danych elementów tablicy
nazwa_tablicy = nazwa wielowymiarowej tablicy
Jako przykład jednej wielowymiarowej tablicy innej niż 2d, omówimy szczegóły tablic trójwymiarowych (3d).
Tablice trójwymiarowe w Javie
Omówiliśmy już, że tablica staje się bardziej złożona wraz ze wzrostem jej wymiarów. Tablice trójwymiarowe są złożone w przypadku tablic wielowymiarowych. Trójwymiarowy można zdefiniować jako tablicę dwuwymiarowych tablic.
Ogólna definicja tablicy trójwymiarowej jest podana poniżej:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Tutaj,
d1, d2, d3 = rozmiary wymiarów
data_type = typ danych elementów tablicy
nazwa_tablicy = nazwa tablicy 3D
Przykład definicji tablicy 3D to:
int () () () intArray = new int(2)(3)(4);
Powyższa definicja tablicy 3d może być interpretowana jako posiadająca 2 tabele lub tablice, 3 wiersze i 4 kolumny, co daje w sumie do 2x3x4 = 24 elementy.
Oznacza to, że w tablicy 3D te trzy wymiary są interpretowane jako:
- Liczba tabel / tablic: Pierwszy wymiar wskazuje, ile tabel lub tablic będzie miała tablica 3D.
- Liczba wierszy: Drugi wymiar określa całkowitą liczbę wierszy, jakie będzie miała tablica.
- Liczba kolumn: Trzeci wymiar wskazuje całkowitą liczbę kolumn w szyku 3d.
Zainicjuj tablicę 3D
Podejścia używane do inicjalizacji tablicy 3D są takie same, jak te używane do inicjowania tablic dwuwymiarowych.
Możesz zainicjować tablicę, przypisując wartości do poszczególnych elementów tablicy lub zainicjować tablicę podczas deklaracji.
Poniższy przykład przedstawia inicjalizację tablicy 3d podczas deklaracji.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { { { 1, 2, 3}, { 4, 5, 6 } , { 7, 8, 9 } } }; System.out.println ('3-d array is given below :'); //print the elements of array for (int i = 0; i <1; i++) for (int j = 0; j < 3; j++) for (int z = 0; z < 3; z++) System.out.println ('intArray (' + i + ')(' + j + ')(' + z + ') = ' + intArray (i)(j)(z)); } }
Wynik:
Po zainicjowaniu tablicy 3d podczas deklaracji uzyskaliśmy dostęp do poszczególnych elementów tablicy i wydrukowaliśmy je.
Dostęp i drukowanie 3D Array
Ponownie, drukowanie i uzyskiwanie dostępu do elementów tablic w trójwymiarowej tablicy jest podobne do tego w tablicach dwuwymiarowych.
Poniższy program używa pętli for, aby uzyskać dostęp do elementów tablicy i wydrukować je na konsoli.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() myArray = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 1, 4, 9 }, { 16, 25, 36 } }, { { 1, 8, 27 }, { 64, 125, 216 } } }; System.out.println('3x2x3 array is given below:'); //print the 3-d array for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { System.out.print(myArray(i)(j)(k) + ' '); } System.out.println(); } System.out.println(); } } }
Wynik:
Powyższy program wyświetla tabelaryczną reprezentację trójwymiarowej tablicy. Jak pokazano, jest to tablica 3x2x3, co oznacza, że ma 3 tabele, 2 wiersze i 3 kolumny, a zatem 18 elementów.
Wspomniano już, że rozmiar kolumny może się różnić w wielowymiarowej tablicy. Poniższy przykład przedstawia trójwymiarową tablicę z różnymi rozmiarami kolumn.
Ten program używa również rozszerzonej pętli for do przechodzenia przez tablicę i wyświetlania jej elementów.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { {{10, 20, 30},{20, 40, 60}}, { {10, 30,50,70},{50},{80, 90}} }; System.out.println('Multidimensional Array (3-d) is as follows:'); // use for..each loop to iterate through elements of 3d array for (int()() array_2D: intArray) { for (int() array_1D: array_2D) { for(intelem: array_1D) { System.out.print(elem + ' '); } System.out.println(); } System.out.println(); } } }
Wynik:
Używana tablica wejściowa to tablica trójwymiarowa o różnej długości kolumn. Ulepszona pętla dla każdej używanej dla każdego wymiaru wyświetla zawartość tablicy w formacie tabelarycznym.
Często Zadawane Pytania
P # 1) Co masz na myśli przez tablicę dwuwymiarową?
Odpowiedź: Tablica dwuwymiarowa nazywana jest tablicą tablic i jest zwykle zorganizowana w postaci macierzy składających się z wierszy i kolumn. Tablica dwuwymiarowa znajduje zastosowanie głównie w relacyjnych bazach danych lub podobnych strukturach danych.
P # 2) Co to jest jednowymiarowa tablica w Javie?
Odpowiedź: Jednowymiarowa tablica w Javie to tablica z tylko jednym indeksem. To najprostsza forma tablic w Javie.
P # 3) Jaka jest różnica między tablicą jednowymiarową a tablicą dwuwymiarową?
Odpowiedź: Jednowymiarowa tablica przechowuje pojedynczą sekwencję elementów i ma tylko jeden indeks. Dwuwymiarowa tablica przechowuje tablicę tablic elementów i używa dwóch indeksów, aby uzyskać dostęp do jej elementów.
P # 4) Co to znaczy być dwuwymiarowym?
Odpowiedź: Dwuwymiarowość oznacza posiadanie tylko dwóch wymiarów. W świecie geometrycznym obiekty, które mają tylko wysokość i szerokość, są obiektami dwuwymiarowymi lub 2D. Te obiekty nie mają grubości ani głębokości.
Trójkąty, prostokąty itp. To obiekty 2D. W kategoriach oprogramowania dwuwymiarowość nadal oznacza posiadanie dwóch wymiarów i zwykle definiujemy struktury danych, takie jak tablice, które mogą mieć 1, 2 lub więcej wymiarów.
P # 5) Który z nich jest pierwszy w tablicy - wiersze czy kolumny?
Odpowiedź: Tablice dwuwymiarowe są przedstawiane jako macierze, a macierze są zwykle zapisywane w postaci wierszy x kolumn. Na przykład, macierz o rozmiarze 2 × 3 będzie miała 2 wiersze i 3 kolumny. W związku z tym również w przypadku tablicy 2D wiersze są pierwsze, a kolumny następne.
Wniosek
Chodziło o wielowymiarowe tablice w Javie. Omówiliśmy wszystkie aspekty tablic dwuwymiarowych, a także tablice z więcej niż dwoma wymiarami.
Są one zwykle nazywane tablicami lub tablicami, ponieważ w przypadku tablic wielowymiarowych każdy element jest inną tablicą. Zatem możemy powiedzieć, że tablica zawiera inną tablicę lub po prostu tablicę tablic.
W naszych nadchodzących samouczkach omówimy więcej tablic, a następnie przejdziemy do innych kolekcji.
=> Obejrzyj serię prostych szkoleń dotyczących języka Java.
rekomendowane lektury
- Tablica Java - jak wydrukować elementy tablicy w języku Java?
- Tablica ogólna Java - jak symulować tablice ogólne w Javie?
- Tablice wielowymiarowe i postrzępione tablice w języku C #
- Wprowadzenie do tablic Java i powiązanych pojęć
- Tablice wielowymiarowe w C ++
- Java DataTypes, pętle, tablice, przełącznik i asercje
- Java Array - Deklaruj, twórz i inicjuj tablicę w Javie
- Samouczek dotyczący długości tablicy w języku Java z przykładami kodu