multidimensional arrays java 2d
Denne vejledning om flerdimensionelle arrays i Java diskuterer, hvordan man initialiserer, får adgang til og udskriver 2d- og 3d-arrays i Java med eksempler på syntaks og kode:
Indtil videre har vi diskuteret de store begreber om endimensionelle arrays. Disse arrays gemmer en enkelt sekvens eller liste med elementer af samme datatype.
Java understøtter også arrays med mere end en dimension, og disse kaldes flerdimensionelle arrays.
=> Tjek ALLE Java-tutorials her.
Java-flerdimensionelle arrays er arrangeret som en matrix af arrays, dvs. hvert element i et multidimensionelt array er et andet array. Repræsentationen af elementerne er i rækker og kolonner. Således kan du få et samlet antal elementer i et flerdimensionelt array ved at gange række størrelse med kolonnestørrelse.
Så hvis du har et todimensionelt array på 3 × 4, så er det samlede antal elementer i dette array = 3 × 4 = 12.
I denne vejledning vil vi udforske flerdimensionelle arrays i Java. Lad os først diskutere de to-dimensionelle arrays, inden vi flytter til tre eller flere dimensionelle arrays.
Hvad du vil lære:
- To-dimensionel matrix
- Java flerdimensionelle arrays
- Tredimensionelle arrays i Java
- Ofte stillede spørgsmål
- Konklusion
To-dimensionel matrix
Den enkleste af det flerdimensionale array er et todimensionalt array. En simpel definition af 2D-arrays er: Et 2D-array er et array med endimensionelle arrays.
hvordan man åbner SWF-filer på Chrome
I Java er et todimensionelt array lagret i form af rækker og kolonner og er repræsenteret i form af en matrix.
Den generelle erklæring om et todimensionelt array er,
data_type () () array_name;
Her,
data_type = datatype af elementer, der gemmes i en matrix.
array_name = navn på det todimensionale array.
Du kan oprette et 2D-array ved hjælp af nyt som følger:
data_type () () array_name = new data_type(row_size)(column_size);
Her,
række_størrelse = antal rækker, som en matrix indeholder.
column_size = antal kolonner array vil indeholde.
Så hvis du har en matrix på 3 × 3, betyder det, at den har 3 rækker og 3 kolonner.
Layoutet for denne matrix vil være som vist nedenfor.
Rækker / kolonner | Kolonne1 | Kolonne2 | Kolonne3 |
---|---|---|---|
Række 1 | (0,0) | (0,1) | (0.2) |
Række 2 | (1.0) | (1,1) | (1,2) |
Række 3 | (2.0) | (2.1) | (2.2) |
Som vist ovenfor gemmer hvert kryds i række og kolonne et element i 2D-arrayet. Så hvis du vil have adgang til det første element i 2d-arrayet, er det givet af (0, 0).
Bemærk at da arraystørrelsen er 3 × 3, kan du have 9 elementer i denne array.
Et heltal array med navnet 'myarray' på 3 rækker og 2 kolonner kan erklæres som nedenfor.
int ()() myarray = new int(3)(2);
Når arrayet er erklæret og oprettet, er det tid til at initialisere det med værdier.
Initialiser 2d Array
Der er forskellige måder at initialisere 2d-arrayet med værdier på. Den første metode er den traditionelle metode til at tildele værdier til hvert element.
Den generelle syntaks til initialisering er:
array_name(row_index)(column_index) = value;
Eksempel:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Ovenstående udsagn initialiserer alle elementerne i det givne 2d-array.
Lad os sætte det i et program og kontrollere output.
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)); } }
Produktion:
Denne metode kan være nyttig, når de involverede dimensioner er mindre. Da arraydimensionen vokser, er det vanskeligt at bruge denne metode til individuel initialisering af elementerne.
Den næste metode til initialisering af 2d-array i Java er ved kun at initialisere arrayet på erklæringstidspunktet.
Den generelle syntaks for denne initialiseringsmetode er som angivet nedenfor:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
For eksempel, hvis du har et 2 × 3 array af typen int, så du kan initialisere det med erklæringen som:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Følgende eksempel viser 2d-array-erklæringen med initialisering.
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(); } } }
Produktion:
I ovenstående program initialiseres arrayet på tidspunktet for selve erklæringen, og derefter vises værdierne.
Du kan også initialisere eller tildele værdierne til 2d-array ved hjælp af en loop som vist nedenfor.
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; } }
Følgende program implementerer ovenstående kode.
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(); } } }
Produktion:
Hvert element i ovenstående 2d-array tildeles en værdi 'i + 1'. Dette gør, at hvert element i en række af arrayet indeholder den samme værdi.
Adgang og udskriv 2d Array
Du ved allerede, at når du initialiserer 2d-arrayet, kan du initialisere de enkelte elementer i arrayet til en værdi. Dette gøres ved at bruge rækkeindekset og kolonneindekset i arrayet til at få adgang til et bestemt element.
I lighed med initialisering kan du også få adgang til værdien af det enkelte element og udskrive det til brugeren.
Den generelle syntaks for adgang til array-elementet er:
data_typeval = array_name(row_index)(column_index);
Hvor array_name er det array, hvis element er tilgængeligt, og data_type er det samme som datatypen for array.
Det følgende program viser, hvordan et individuelt element åbnes og udskrives.
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)); } }
Produktion:
På denne måde kan du nemt få adgang til og udskrive individuelle matrixelementer ved hjælp af række- og kolonneindeks, der er lukket i de firkantede (()) parenteser.
Du kan udskrive hele arrayet på én gang i et tabelformat som vist ovenfor (også kaldet matrixform) ved hjælp af for loop. Da dette er et todimensionelt array, skal du have to løkker til dette. Én sløjfe til at iterere gennem rækker, dvs. den ydre sløjfe og den indre sløjfe for at krydse kolonnerne.
På ethvert givet øjeblik (nuværende iteration) gives det særlige element i arrayet af,
array_name (i) (j);
Hvor 'i' er den aktuelle række og 'j' er den aktuelle kolonne.
Det følgende program viser udskrivning af et 2d-array ved hjælp af en 'for' -sløjfe.
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(''); } } }
Produktion:
I ovenstående program initialiseres 2d-arrayet, og derefter udskrives elementerne ved hjælp af to til sløjfer. Den ydre bruges til at holde styr på rækker, mens den indre for løkke er til kolonner.
Java 2d array længde
Et todimensionelt array defineres som arrayet for et endimensionelt array. Når du har brug for længden af et 2d-array, er det således ikke så ligetil som i et endimensionelt array.
Længdeegenskaben for et todimensionelt array returnerer antallet af rækker i arrayet. Hver række er et endimensionelt array. Du ved allerede, at det todimensionale array består af rækker og kolonner. Kolonnestørrelsen kan variere for hver række.
Derfor kan du få størrelsen på hver række ved at gentage antallet af rækker.
Det følgende program angiver længden på arrayet (antal rækker) samt størrelsen på hver række.
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 Produktion:

Et todimensionelt array defineret ovenfor har to rækker. Hver række er et endimensionelt array. Den første 1D-array har 3 elementer (3 kolonner), mens den anden række har 2 elementer.
Følgende Java-program viser brugen af længdeegenskaber til udskrivning af 2d-arrayet.
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 Produktion:

Som allerede nævnt repræsenterer den ydre løkke rækkerne, og den indre for løkken repræsenterer kolonnerne.
Bemærk: Den afsluttende tilstand i begge sløjfer bruger egenskaben længde, først til at gentage gennem rækker og derefter gennem kolonner.
Java flerdimensionelle arrays
Vi har allerede set to-dimensionelle arrays. Java understøtter arrays med mere end to dimensioner.
Den generelle syntaks for et flerdimensionelt array er som følger:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Her,
d1, d2… dn = dimensioner af det flerdimensionale array
(d1_size) (d2_size)… (dn_size) = respektive størrelser af dimensionerne
data_type = datatype for matrixelementerne
array_name = navn på multidimensionelt array
Som et eksempel på et andet multidimensionelt array andet end 2d-array, lad os diskutere detaljerne i tredimensionelle (3d) arrays.
Tredimensionelle arrays i Java
Vi har allerede diskuteret, at en matrix bliver mere kompleks, når deres dimensioner øges. Tredimensionelle arrays er komplekse til multidimensionelle arrays. En tredimensionel kan defineres som en matrix med todimensionale arrays.
Den generelle definition af et tredimensionelt array er angivet nedenfor:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Her,
d1, d2, d3 = størrelsen på dimensionerne
data_type = datatype for elementerne i arrayet
array_name = navn på 3d-array
Eksempel på 3d array definition er:
int () () () intArray = new int(2)(3)(4);
Ovenstående definition af 3d-array kan fortolkes som at have 2 tabeller eller arrays, 3 rækker og 4 kolonner, der udgør op til 2x3x4 = 24 elementer.
Dette betyder, at i et 3d-array fortolkes de tre dimensioner som:
- Antallet af borde / arrays: Den første dimension angiver, hvor mange tabeller eller arrays en 3d-array vil have.
- Antallet af rækker: Den anden dimension angiver det samlede antal rækker, som en matrix vil have.
- Antallet af kolonner: Den tredje dimension angiver de samlede kolonner i 3d-arrayet.
Initialiser 3D Array
De fremgangsmåder, der bruges til at initialisere et 3d-array, er de samme som dem, der bruges til initialisering af to-dimensionelle arrays.
Du kan enten initialisere arrayet ved at tildele værdier til individuelle arrayelementer eller initialisere arrayet under erklæringen.
Eksemplet nedenfor viser initialiseringen af 3d-array under erklæring.
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)); } }
Produktion:

Efter initialisering af 3d-array under erklæring, har vi åbnet de enkelte elementer i arrayet og udskrevet dem.
Adgang og udskriv 3d-array
Igen svarer udskrivning og adgang til array-elementer i et tredimensionelt array til det i to-dimensionelle arrays.
Programmet nedenfor bruger sløjfer til at få adgang til arrayelementerne og udskrive dem til konsollen.
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(); } } }
Produktion:

Ovenstående program viser en tabelvisning af et tredimensionelt array. Som vist er det et 3x2x3-array, hvilket betyder, at det har 3 tabeller, 2 rækker og 3 kolonner og dermed 18 elementer.
Det er allerede nævnt, at søjlestørrelsen kan variere i et flerdimensionelt array. Eksemplet nedenfor viser et tredimensionelt array med forskellige kolonnestørrelser.
Dette program bruger også forbedret til loop til at krydse gennem arrayet og vise dets elementer.
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(); } } }
Produktion:

Det anvendte input-array er et tredimensionelt array med en varieret kolonnelængde. Den forbedrede for hver sløjfe, der bruges til hver dimension, viser indholdet af arrayet i et tabelformat.
Ofte stillede spørgsmål
Q # 1) Hvad mener du med todimensionelt array?
Svar: Et todimensionelt array kaldes et array af arrays og er normalt organiseret i form af matricer bestående af rækker og kolonner. Et todimensionalt array finder sin anvendelse hovedsagelig i relationsdatabaser eller lignende datastrukturer.
Q # 2) Hvad er et enkeltdimensionelt array i Java?
Svar: Endimensionelt array i Java er et array med kun et indeks. Dette er den enkleste form for arrays i Java.
Q # 3) Hvad er forskellen mellem et endimensionelt array og et todimensionalt array?
Svar: Et-dimensionelt array gemmer en enkelt række af elementer og har kun et indeks. Et todimensionelt array gemmer et array med arrays af elementer og bruger to indekser til at få adgang til dets elementer.
Q # 4) Hvad betyder det at være todimensionelt?
Svar: To-dimensionelt betyder kun at have to dimensioner. I en geometrisk verden er objekter, der kun har højde og bredde, todimensionale eller 2D-objekter. Disse objekter har ikke tykkelse eller dybde.
Trekant, rektangler osv. Er 2D-objekter. I softwaretermer betyder todimensionel stadig at have to dimensioner, og vi definerer normalt datastrukturer som arrays, der kan have 1, 2 eller flere dimensioner.
hvad skal du bruge til fejlfinding af et live netværkskabel
Q # 5) Hvilken kommer først i en matrix - rækker eller kolonner?
Svar: To-dimensionelle arrays er repræsenteret som matricer, og matricer skrives normalt i form af rækker x kolonner. For eksempel, en matrix med størrelse 2 × 3 vil have 2 rækker og 3 kolonner. Derfor for 2D-array også kommer rækker først og kolonner næste.
Konklusion
Dette handlede om multidimensionelle arrays i Java. Vi har diskuteret alle aspekterne af todimensionale arrays samt en matrix med mere end to dimensioner.
Disse kaldes normalt array eller arrays, da hvert element er et andet array i tilfælde af flerdimensionale arrays. Således kan vi sige, at et array indeholder et andet array eller blot et array af arrays.
I vores kommende tutorials vil vi udforske mere om arrays og derefter gå videre til andre samlinger.
=> Hold øje med den enkle Java-træningsserie her.
Anbefalet læsning
- Java Array - Hvordan udskrives elementer af en matrix i Java?
- Java Generic Array - Sådan simuleres generiske arrays i Java?
- Flerdimensionelle arrays og jagged arrays i C #
- Introduktion til Java Arrays og relaterede koncepter
- Flerdimensionelle arrays i C ++
- Java datatyper, sløjfer, arrays, switch og påstande
- Java Array - Erklære, oprette og initialisere en matrix i Java
- Java Array Length Tutorial med kodeeksempler