multidimensional arrays java 2d
Tento tutoriál o multidimenzionálnych poliach v Jave pojednáva o tom, ako inicializovať, sprístupniť a tlačiť 2D a 3D polia v Jave pomocou príkladov syntaxe a kódu:
Doteraz sme diskutovali o hlavných konceptoch o jednorozmerných poliach. Tieto polia ukladajú jednu sekvenciu alebo zoznam prvkov rovnakého dátového typu.
Java podporuje aj polia s viac ako jednou dimenziou, ktoré sa nazývajú viacrozmerné polia.
=> Skontrolujte VŠETKY návody Java tu.
Multidimenzionálne polia Java sú usporiadané ako pole polí, t. J. Každý prvok viacrozmerného poľa je ďalšie pole. Zastúpenie prvkov je v riadkoch a stĺpcoch. Takto môžete získať celkový počet prvkov vo viacrozmernom poli vynásobením veľkosti riadku a veľkosti stĺpca.
Takže ak máte dvojrozmerné pole 3 × 4, potom celkový počet prvkov v tomto poli = 3 × 4 = 12.
V tomto tutoriále preskúmame viacrozmerné polia v Jave. Najprv sa pozrime na dvojrozmerné polia, potom sa presunieme do trojrozmerných polí.
čo znamená kľúč zabezpečenia siete
Čo sa dozviete:
Dvojrozmerné pole
Najjednoduchšie z viacrozmerného poľa je dvojrozmerné pole. Jednoduchá definícia 2D polí je: 2D pole je pole jednorozmerných polí.
V Jave je dvojrozmerné pole uložené vo forme riadkov a stĺpcov a je reprezentované vo forme matice.
Všeobecná deklarácia dvojrozmerného poľa je,
data_type () () array_name;
Tu,
data_type = dátový typ prvkov, ktoré budú uložené v poli.
array_name = názov dvojrozmerného poľa.
2D pole môžete vytvoriť pomocou nového takto:
data_type () () array_name = new data_type(row_size)(column_size);
Tu,
row_size = počet riadkov, ktoré pole bude obsahovať.
column_size = počet stĺpcov, ktoré pole bude obsahovať.
Takže ak máte pole 3 × 3, znamená to, že bude mať 3 riadky a 3 stĺpce.
Rozloženie tohto poľa bude také, ako je uvedené nižšie.
Riadky / stĺpce | Stĺpec1 | Stĺpec2 | Stĺpec3 |
---|---|---|---|
Riadok 1 | (0,0) | (0,1) | (0,2) |
2. riadok | (1,0) | (1,1) | (1,2) |
Riadok 3 | (2.0) | (2.1) | (2.2) |
Ako je uvedené vyššie, každý priesečník riadku a stĺpca uchováva prvok 2D poľa. Pokiaľ teda chcete získať prístup k prvému prvku v dvojrozmernom poli, je daný parametrom (0, 0).
Poznámka že keďže veľkosť poľa je 3 × 3, môžete v tomto poli obsahovať 9 prvkov.
Celé pole s názvom „myarray“ s 3 riadkami a 2 stĺpcami možno deklarovať nižšie.
int ()() myarray = new int(3)(2);
Po deklarácii a vytvorení poľa je čas ho inicializovať hodnotami.
Inicializujte 2D pole
Existujú rôzne spôsoby inicializácie 2D poľa s hodnotami. Prvá metóda je tradičná metóda priraďovania hodnôt každému prvku.
Všeobecná syntax pre inicializáciu je:
array_name(row_index)(column_index) = value;
Príklad:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Vyššie uvedené príkazy inicializujú všetky prvky daného 2d poľa.
Poďme to do programu a skontrolujte 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ýkon:
Táto metóda môže byť užitočná, ak sú príslušné rozmery menšie. S rastom dimenzie poľa je ťažké použiť túto metódu individuálnej inicializácie prvkov.
Ďalším spôsobom inicializácie 2d poľa v Jave je inicializácia poľa iba v čase deklarácie.
Všeobecná syntax pre túto metódu inicializácie je uvedená nižšie:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Napríklad, ak máte pole 2 × 3 typu int, tak môžete ho inicializovať vyhlásením ako:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Nasledujúci príklad ukazuje deklaráciu 2d poľa s inicializáciou.
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ýkon:
Vo vyššie uvedenom programe sa pole inicializuje v čase samotnej deklarácie a potom sa zobrazia hodnoty.
Hodnoty môžete tiež inicializovať alebo priradiť k 2d poli pomocou slučky, ako je uvedené nižšie.
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; } }
Nasledujúci program implementuje vyššie 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ýkon:
Každému prvku v poli 2d vyššie je priradená hodnota „i + 1“. Vďaka tomu bude mať každý prvok v rade poľa rovnakú hodnotu.
Prístup a tlač na 2d pole
Už viete, že pri inicializácii 2d poľa môžete inicializovať jednotlivé prvky poľa na hodnotu. To sa deje pomocou indexu riadkov a indexov stĺpcov poľa na prístup ku konkrétnemu prvku.
Podobne ako pri inicializácii môžete tiež získať prístup k hodnote jednotlivého prvku a vytlačiť ho používateľovi.
Všeobecná syntax pre prístup k prvku poľa je:
data_typeval = array_name(row_index)(column_index);
Kde array_name je pole, ktorého element je prístupný a data_type je rovnaký ako dátový typ poľa.
Nasledujúci program ukazuje, ako sa pristupuje a tlačí k jednotlivým prvkom.
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ýkon:
Týmto spôsobom môžete ľahko získať prístup a vytlačiť jednotlivé prvky poľa pomocou indexov riadkov a stĺpcov uzavretých v hranatých zátvorkách (()).
Celé pole môžete tlačiť naraz v tabuľkovom formáte, ako je uvedené vyššie (tiež sa nazýva maticový formulár) pomocou slučky for. Pretože sa jedná o dvojrozmerné pole, musíte na to mať dve slučky. Jedna slučka na iteráciu riadkami, tj. Vonkajšia slučka a vnútorná slučka na prechádzanie stĺpcami.
V ktoromkoľvek danom okamihu (aktuálna iterácia) je konkrétny prvok v poli daný znakom,
pole_name (i) (j);
Kde „i“ je aktuálny riadok a „j“ je aktuálny stĺpec.
Nasledujúci program zobrazuje tlač 2D poľa pomocou slučky „pre“.
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ýkon:
Vo vyššie uvedenom programe sa inicializuje 2d pole a potom sa prvky tlačia pomocou dvoch cyklov for. Vonkajšia slúži na sledovanie riadkov, zatiaľ čo vnútorná slučka pre slúži pre stĺpce.
Dĺžka poľa Java 2d
Dvojrozmerné pole je definované ako pole jednorozmerného poľa. Ak teda potrebujete dĺžku 2D poľa, nie je to také priame ako v jednorozmernom poli.
Vlastnosť length pre dvojrozmerné pole vracia počet riadkov v poli. Každý riadok je jednorozmerné pole. Už viete, že dvojrozmerné pole pozostáva z riadkov a stĺpcov. Veľkosť stĺpca sa môže pre každý riadok líšiť.
Preto môžete získať veľkosť každého riadku opakovaním počtu riadkov.
Nasledujúci program poskytuje dĺžku poľa (počet riadkov) a veľkosť každého riadku.
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ýkon:

Vyššie definované dvojrozmerné pole má dva riadky. Každý riadok je jednorozmerné pole. Prvé 1D pole má 3 prvky (3 stĺpce), zatiaľ čo druhý riadok má 2 prvky.
Nasledujúci program Java ukazuje použitie vlastnosti length na tlač 2D poľa.
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ýkon:

Ako už bolo spomenuté, vonkajšia slučka predstavuje riadky a vnútorná slučka for predstavuje stĺpce.
Poznámka: Podmienka ukončenia v oboch slučkách používa vlastnosť length, najskôr na iteráciu riadkami a potom stĺpcami.
Viacdimenzionálne polia Java
Už sme videli dvojrozmerné polia. Java podporuje polia s viac ako dvoma rozmermi.
Všeobecná syntax viacrozmerného poľa je nasledovná:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Tu,
d1, d2… dn = rozmery viacrozmerného poľa
(d1_size) (d2_size)… (dn_size) = príslušné veľkosti rozmerov
data_type = dátový typ prvkov poľa
array_name = názov multidimenzionálneho poľa
Ako príklad jedného viacdimenzionálneho poľa iného ako dvojrozmerné si poďme rozobrať podrobnosti o trojrozmerných poliach.
Trojrozmerné polia v Jave
Už sme hovorili o tom, že pole sa stáva zložitejším, keď sa zväčšujú jeho rozmery. Trojrozmerné polia sú komplexné pre viacrozmerné polia. Trojrozmerný možno definovať ako pole dvojrozmerných polí.
Všeobecná definícia trojrozmerného poľa je uvedená nižšie:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Tu,
d1, d2, d3 = veľkosti rozmerov
data_type = dátový typ prvkov poľa
array_name = názov 3d poľa
Príklad definície poľa 3d je:
int () () () intArray = new int(2)(3)(4);
Vyššie uvedenú definíciu poľa 3d možno interpretovať tak, že obsahuje 2 tabuľky alebo polia, 3 riadky a 4 stĺpce, ktoré majú spolu až 2x3x4 = 24 prvkov.
To znamená, že v poli 3d sa tieto tri dimenzie interpretujú ako:
- Počet tabuliek / polí: Prvá dimenzia označuje, koľko tabuliek alebo polí bude mať pole 3d.
- Počet riadkov: Druhá dimenzia znamená celkový počet riadkov, ktoré bude mať pole.
- Počet stĺpcov: Tretia dimenzia označuje celkový počet stĺpcov v poli 3d.
Inicializujte 3d pole
Prístupy použité na inicializáciu 3d poľa sú rovnaké ako prístupy použité na inicializáciu dvojrozmerných polí.
Pole môžete buď inicializovať priradením hodnôt jednotlivým prvkom poľa, alebo pole inicializovať počas deklarácie.
Nasledujúci príklad ukazuje inicializáciu poľa 3d počas deklarácie.
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ýkon:

Po inicializácii 3d poľa počas deklarácie sme sprístupnili jednotlivé prvky poľa a vytlačili ich.
Prístup a tlač 3D poľa
Opäť platí, že tlač a prístup k prvkom poľa v trojrozmernom poli je podobný ako v dvojrozmerných poliach.
Program uvedený nižšie používa slučky na prístup k prvkom poľa a ich tlač 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ýkon:

Vyššie uvedený program zobrazuje tabuľkové znázornenie trojrozmerného poľa. Ako je znázornené, jedná sa o pole 3x2x3, čo znamená, že má 3 tabuľky, 2 riadky a 3 stĺpce, a teda 18 prvkov.
Už bolo spomenuté, že veľkosť stĺpca sa môže meniť vo viacrozmernom poli. Nasledujúci príklad demonštruje trojrozmerné pole s rôznymi veľkosťami stĺpcov.
Tento program tiež používa vylepšenú slučku na prechod cez pole a zobrazenie jeho prvkov.
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ýkon:

Použitým vstupným poľom je trojrozmerné pole s rôznou dĺžkou stĺpcov. Vylepšené pre každú slučku použitú pre každú dimenziu zobrazuje obsah poľa v tabuľkovom formáte.
často kladené otázky
Otázka č. 1) Čo máte na mysli pod pojmom dvojrozmerné pole?
Odpoveď: Dvojrozmerné pole sa nazýva pole polí a zvyčajne je usporiadané vo forme matíc pozostávajúcich z riadkov a stĺpcov. Dvojrozmerné pole nachádza svoje využitie predovšetkým v relačných databázach alebo podobných dátových štruktúrach.
Otázka 2) Čo je to jednorozmerné pole v Jave?
Odpoveď: Jednorozmerné pole v Jave je pole s iba jedným indexom. Toto je najjednoduchšia forma polí v Jave.
Otázka 3) Aký je rozdiel medzi jednorozmerným poľom a dvojrozmerným poľom?
Odpoveď: Jednorozmerné pole uchováva jednu sekvenciu prvkov a má iba jeden index. Dvojrozmerné pole ukladá pole polí prvkov a na prístup k svojim prvkom používa dva indexy.
Otázka č. 4) Čo to znamená byť dvojrozmerný?
Odpoveď: Dvojrozmerné prostriedky majú iba dva rozmery. V geometrickom svete sú objekty, ktoré majú iba výšku a šírku, dvojrozmerné alebo 2D objekty. Tieto objekty nemajú hrúbku ani hĺbku.
Trojuholník, obdĺžniky atď. Sú 2D objekty. Pokiaľ ide o softvér, dvojrozmerný stále znamená mať dva rozmery a zvyčajne definujeme dátové štruktúry ako polia, ktoré môžu mať 1, 2 alebo viac rozmerov.
najlepší bezplatný optimalizátor pre Windows 10
Otázka č. 5) Ktorý z nich je v poli prvý - riadky alebo stĺpce?
Odpoveď: Dvojrozmerné polia sú reprezentované ako matice a matice sa zvyčajne zapisujú ako riadky x stĺpce. Napríklad, matica veľkosti 2 × 3 bude mať 2 riadky a 3 stĺpce. Preto aj pre 2D pole sú najskôr riadky a potom stĺpce.
Záver
Toto všetko bolo o viacrozmerných poliach v Jave. Diskutovali sme o všetkých aspektoch dvojrozmerných polí, ako aj o poli s viac ako dvoma rozmermi.
Obvykle sa nazývajú pole alebo polia, pretože v prípade viacrozmerných polí je každý prvok iným poľom. Môžeme teda povedať, že pole obsahuje ďalšie pole alebo jednoducho pole.
V našich pripravovaných tutoriáloch preskúmame viac informácií o poliach a potom prejdeme k ďalším kolekciám.
=> Dajte si pozor na jednoduchú sériu školení Java tu.
Odporúčané čítanie
- Java Array - Ako tlačiť prvky poľa v Jave?
- Generické pole Java - Ako simulovať generické polia v prostredí Java?
- MultiDimenzionálne polia a zubaté polia v C #
- Úvod do Java polí a súvisiacich konceptov
- Multidimenzionálne polia v C ++
- Java dátové typy, slučky, polia, prepínače a tvrdenia
- Java Array - Deklarovať, vytvoriť a inicializovať pole v Jave
- Výukový program Java Array Length s príkladmi kódu