multidimensional arrays java 2d
Tento kurz o vícerozměrných polích v Javě pojednává o tom, jak inicializovat, přistupovat a tisknout 2D a 3D pole v Javě s příklady syntaxe a kódu:
Dosud jsme diskutovali o hlavních pojmech o jednorozměrných polích. Tato pole ukládají jednu sekvenci nebo seznam prvků stejného datového typu.
Java také podporuje pole s více než jednou dimenzí a tato pole se nazývají vícerozměrná pole.
=> Zkontrolujte VŠECHNY výukové programy Java zde.
Multidimenzionální pole Java jsou uspořádána jako pole polí, tj. Každý prvek vícerozměrného pole je jiné pole. Reprezentace prvků je v řádcích a sloupcích. Můžete tedy získat celkový počet prvků ve vícerozměrném poli vynásobením velikosti řádku a velikosti sloupce.
Pokud tedy máte dvourozměrné pole 3 × 4, pak celkový počet prvků v tomto poli = 3 × 4 = 12.
V tomto kurzu prozkoumáme vícerozměrná pole v Javě. Nejprve si představme dvourozměrná pole, než se přesuneme do tří nebo více dimenzionálních polí.
Co se naučíte:
Dvourozměrné pole
Nejjednodušší z vícerozměrného pole je dvourozměrné pole. Jednoduchá definice 2D polí je: 2D pole je pole jednorozměrných polí.
V Javě je dvourozměrné pole uloženo ve formě řádků a sloupců a je reprezentováno ve formě matice.
Obecná deklarace dvourozměrného pole je,
data_type () () array_name;
Tady,
data_type = datový typ prvků, které budou uloženy v poli.
array_name = název dvourozměrného pole.
2D pole můžete vytvořit pomocí nového takto:
data_type () () array_name = new data_type(row_size)(column_size);
Tady,
row_size = počet řádků, které pole bude obsahovat.
column_size = počet sloupců, které pole bude obsahovat.
Pokud tedy máte pole 3 × 3, znamená to, že bude mít 3 řádky a 3 sloupce.
Rozložení tohoto pole bude vypadat níže.
Řádky / sloupce | Sloupec1 | Sloupec2 | Sloupec3 |
---|---|---|---|
Řádek 1 | (0,0) | (0,1) | (0,2) |
Řádek2 | (1.0) | (1,1) | (1,2) |
Řádek3 | (2.0) | (2.1) | (2.2) |
Jak je uvedeno výše, každý průsečík řádku a sloupce ukládá prvek 2D pole. Pokud tedy chcete získat přístup k prvnímu prvku v 2d poli, pak je dán vztahem (0, 0).
Poznámka protože velikost pole je 3 × 3, můžete mít v tomto poli 9 prvků.
Celé pole s názvem „myarray“ se 3 řádky a 2 sloupci lze deklarovat níže.
int ()() myarray = new int(3)(2);
Jakmile je pole deklarováno a vytvořeno, je čas ho inicializovat hodnotami.
Inicializujte 2D pole
Existují různé způsoby inicializace 2D pole s hodnotami. První metoda je tradiční metoda přiřazování hodnot každému prvku.
Obecná syntaxe pro inicializaci je:
array_name(row_index)(column_index) = value;
Příklad:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Výše uvedené příkazy inicializují všechny prvky daného 2d pole.
Dejme to do programu a zkontrolujte výstup.
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)); } }
Výstup:
Tato metoda může být užitečná, pokud jsou příslušné rozměry menší. Jak dimenze pole roste, je obtížné použít tuto metodu individuální inicializace prvků.
Další metodou inicializace 2d pole v Javě je inicializace pole pouze v době deklarace.
Obecná syntaxe pro tuto inicializační metodu je uvedena níže:
rozdíl mezi c ++ a c
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Například, pokud máte pole typu 2 × 3 typu int, pak můžete jej inicializovat deklarací jako:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Následující příklad ukazuje deklaraci 2D pole s inicializací.
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(); } } }
Výstup:
Ve výše uvedeném programu je pole inicializováno v době samotné deklarace a poté jsou zobrazeny hodnoty.
Hodnoty můžete také inicializovat nebo přiřadit 2d poli pomocí smyčky, jak je znázorněno níže.
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; } }
Následující program implementuje výše uvedený kód.
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(); } } }
Výstup:
Každému prvku ve výše uvedeném 2d poli je přiřazena hodnota „i + 1“. Díky tomu bude každý prvek v řádku pole obsahovat stejnou hodnotu.
Přístup a tisk 2D pole
Již víte, že při inicializaci 2D pole můžete inicializovat jednotlivé prvky pole na hodnotu. To se provádí pomocí indexu řádků a indexu sloupců pole pro přístup ke konkrétnímu prvku.
Podobně jako při inicializaci můžete také získat přístup k hodnotě jednotlivého prvku a vytisknout jej uživateli.
Obecná syntaxe pro přístup k prvku pole je:
data_typeval = array_name(row_index)(column_index);
Kde array_name je pole, jehož prvek je přístupný a data_type je stejný jako datový typ pole.
Následující program ukazuje, jak se přistupuje a tiskne jednotlivé prvky.
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)); } }
Výstup:
Tímto způsobem můžete snadno přistupovat a tisknout jednotlivé prvky pole pomocí indexů řádků a sloupců uzavřených v hranatých (()) závorkách.
Celé pole můžete vytisknout najednou v tabulkovém formátu, jak je uvedeno výše (také nazývané maticový formulář), pomocí smyčky for. Jelikož se jedná o dvourozměrné pole, musíte mít k tomu dvě smyčky. Jedna smyčka pro iteraci řádky, tj. Vnější smyčka a vnitřní smyčka pro procházení sloupců.
webové stránky ke stažení videí z youtube
V daném okamžiku (aktuální iterace) je konkrétní prvek v poli dán vztahem,
název_ pole (i) (j);
Kde „i“ je aktuální řádek a „j“ je aktuální sloupec.
Následující program ukazuje tisk 2D pole pomocí smyčky „pro“.
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(''); } } }
Výstup:
Ve výše uvedeném programu je inicializováno 2d pole a poté jsou prvky vytištěny pomocí dvou smyček for. Vnější se používá ke sledování řádků, zatímco vnitřní smyčka for je pro sloupce.
Délka pole Java 2d
Dvourozměrné pole je definováno jako pole jednorozměrného pole. Když tedy potřebujete délku 2D pole, není to tak jednoduché jako v jednorozměrném poli.
Vlastnost length pro dvourozměrné pole vrací počet řádků v poli. Každý řádek je jednorozměrné pole. Již víte, že dvourozměrné pole se skládá z řádků a sloupců. Velikost sloupce se může u každého řádku lišit.
Proto můžete získat velikost každého řádku opakováním počtu řádků.
Následující program udává délku pole (počet řádků) a velikost každého řádku.
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 Výstup:

Dvourozměrné pole definované výše má dva řádky. Každý řádek je jednorozměrné pole. První 1D pole má 3 prvky (3 sloupce), zatímco druhá řada má 2 prvky.
Následující program Java ukazuje použití vlastnosti length k tisku 2d pole.
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 Výstup:

Jak již bylo zmíněno, vnější smyčka představuje řádky a vnitřní smyčka for představuje sloupce.
Poznámka: Podmínka ukončení v obou smyčkách používá vlastnost length, nejprve k iteraci řádky a poté přes sloupce.
Vícedimenzionální pole Java
Už jsme viděli dvourozměrná pole. Java podporuje pole s více než dvěma rozměry.
Obecná syntaxe vícerozměrného pole je následující:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Tady,
d1, d2… dn = rozměry vícerozměrného pole
(d1_size) (d2_size)… (dn_size) = příslušné velikosti rozměrů
data_type = datový typ prvků pole
array_name = název vícerozměrného pole
Jako příklad jednoho více vícerozměrného pole jiného než 2d pole pojďme diskutovat o detailech trojrozměrných (3d) polí.
Trojrozměrná pole v Javě
Už jsme diskutovali o tom, že pole se stává složitějším, jak se jeho rozměry zvětšují. Trojrozměrná pole jsou pro vícerozměrná pole složitá. Trojrozměrný lze definovat jako pole dvourozměrných polí.
Obecná definice trojrozměrného pole je uvedena níže:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Tady,
d1, d2, d3 = velikosti rozměrů
data_type = datový typ prvků pole
array_name = název 3d pole
Příklad definice 3D pole je:
int () () () intArray = new int(2)(3)(4);
Výše uvedenou definici 3d pole lze interpretovat tak, že má 2 tabulky nebo pole, 3 řádky a 4 sloupce, které celkem dosahují až 2x3x4 = 24 prvků.
To znamená, že v 3d poli jsou tři dimenze interpretovány jako:
- Počet tabulek / polí: První dimenze označuje, kolik tabulek nebo polí bude mít 3d pole.
- Počet řádků: Druhá dimenze znamená celkový počet řádků, které pole bude mít.
- Počet sloupců: Třetí dimenze označuje celkový počet sloupců v poli 3d.
Inicializujte 3d pole
Přístupy použité k inicializaci 3d pole jsou stejné jako přístupy použité k inicializaci dvourozměrných polí.
Pole můžete buď inicializovat přiřazením hodnot jednotlivým prvkům pole, nebo pole inicializovat během deklarace.
Následující příklad ukazuje inicializaci pole 3d při deklaraci.
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)); } }
Výstup:

jak převést char na int v c ++
Po inicializaci 3d pole během deklarace jsme přistupovali k jednotlivým prvkům pole a tiskli je.
Přístup a tisk 3d pole
Tisk a přístup k prvkům pole v trojrozměrném poli je opět podobný jako v dvourozměrných polích.
Níže uvedený program používá pro smyčky přístup k prvkům pole a jejich tisk na konzolu.
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(); } } }
Výstup:

Výše uvedený program zobrazuje tabulkovou reprezentaci trojrozměrného pole. Jak je znázorněno, jedná se o pole 3x2x3, což znamená, že má 3 tabulky, 2 řádky a 3 sloupce a tedy 18 prvků.
Již bylo zmíněno, že velikost sloupce se může v multidimenzionálním poli lišit. Následující příklad ukazuje trojrozměrné pole s různými velikostmi sloupců.
Tento program také používá vylepšenou smyčku pro procházení pole a zobrazení jeho prvků.
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(); } } }
Výstup:

Používané vstupní pole je trojrozměrné pole s různou délkou sloupců. Vylepšená pro každou smyčku použitou pro každou dimenzi zobrazuje obsah pole v tabulkovém formátu.
Často kladené otázky
Otázka č. 1) Co myslíte pod pojmem dvourozměrné pole?
Odpovědět: Dvourozměrné pole se nazývá pole polí a je obvykle organizováno ve formě matic skládajících se z řádků a sloupců. Dvourozměrné pole najde své použití většinou v relačních databázích nebo podobných datových strukturách.
Otázka 2) Co je to jednorozměrné pole v Javě?
Odpovědět: Jednorozměrné pole v Javě je pole s pouze jedním indexem. Toto je nejjednodušší forma polí v Javě.
Otázka č. 3) Jaký je rozdíl mezi jednorozměrným polem a dvourozměrným polem?
Odpovědět: Jednorozměrné pole ukládá jednu sekvenci prvků a má pouze jeden index. Dvourozměrné pole ukládá pole polí prvků a používá dva indexy pro přístup k jeho prvkům.
Otázka č. 4) Co to znamená být dvojrozměrný?
Odpovědět: Dvojrozměrný znamená mít pouze dva rozměry. V geometrickém světě jsou objekty, které mají pouze výšku a šířku, dvourozměrné nebo 2D objekty. Tyto objekty nemají tloušťku ani hloubku.
Trojúhelník, obdélníky atd. Jsou 2D objekty. Z hlediska softwaru znamená dvourozměrný stále dva rozměry a obvykle definujeme datové struktury, jako jsou pole, která mohou mít 1, 2 nebo více rozměrů.
Otázka č. 5) Který z nich je v poli první - řádky nebo sloupce?
Odpovědět: Dvojrozměrná pole jsou reprezentována jako matice a matice se obvykle zapisují jako řádky x sloupce. Například, matice o velikosti 2 × 3 bude mít 2 řádky a 3 sloupce. Proto i pro 2D pole jsou nejprve řádky a potom sloupce.
Závěr
Toto bylo všechno o vícerozměrných polích v Javě. Diskutovali jsme o všech aspektech dvourozměrných polí a také o poli s více než dvěma rozměry.
Obvykle se jim říká pole nebo pole, protože v případě vícerozměrných polí je každý prvek jiným polem. Můžeme tedy říci, že pole obsahuje jiné pole nebo jednoduše pole.
V našich připravovaných tutoriálech prozkoumáme více o polích a poté přejdeme k dalším kolekcím.
=> Dávejte pozor na jednoduchou sérii školení Java zde.
Doporučené čtení
- Java Array - Jak tisknout prvky pole v Javě?
- Generické pole Java - Jak simulovat obecná pole v Javě?
- Vícedimenzionální pole a zubatá pole v C #
- Úvod do Java polí a souvisejících konceptů
- Vícerozměrná pole v C ++
- Java DataTypes, Loops, Arrays, Switch a Assertions
- Java Array - deklarovat, vytvořit a inicializovat pole v Javě
- Výukový program Java Array Length s příklady kódu