multidimensional arrays java 2d
Denna handledning om flerdimensionella matriser i Java diskuterar hur man initialiserar, får åtkomst till och skriver ut 2d- och 3d-matriser i Java med syntax och kodexempel:
Hittills har vi diskuterat de viktigaste begreppen om endimensionella matriser. Dessa matriser lagrar en enda sekvens eller en lista med element av samma datatyp.
Java stöder också matriser med mer än en dimension och dessa kallas flerdimensionella matriser.
=> Kontrollera ALLA Java-handledning här.
Java-flerdimensionella matriser är ordnade som en grupp av matriser, dvs. varje element i en multidimensionell matris är en annan matris. Elementens representation är i rader och kolumner. Således kan du få ett totalt antal element i en flerdimensionell array genom att multiplicera radstorlek med kolumnstorlek.
Så om du har en tvådimensionell matris på 3 × 4, så är det totala antalet element i denna matris = 3 × 4 = 12.
I denna handledning kommer vi att utforska flerdimensionella matriser i Java. Låt oss först diskutera de tvådimensionella matriserna innan vi flyttar till tre eller fler dimensionella matriser.
Vad du kommer att lära dig:
- Tvådimensionell matris
- Java MultiDimensional Arrays
- Tredimensionella matriser i Java
- Vanliga frågor
- Slutsats
Tvådimensionell matris
Den enklaste av den flerdimensionella matrisen är en tvådimensionell matris. En enkel definition av 2D-matriser är: En 2D-array är en array med endimensionella matriser.
I Java lagras en tvådimensionell matris i form av rader och kolumner och representeras i form av en matris.
Den allmänna deklarationen för en tvådimensionell grupp är,
data_type () () array_name;
Här,
data_type = datatyp av element som kommer att lagras i en matris.
array_name = namn på den tvådimensionella arrayen.
Du kan skapa en 2D-array med nytt enligt följande:
data_type () () array_name = new data_type(row_size)(column_size);
Här,
row_size = antal rader som en matris kommer att innehålla.
column_size = antal kolumner kommer att innehålla.
Så om du har en matris med 3 × 3 betyder det att den kommer att ha 3 rader och 3 kolumner.
Layouten för denna matris kommer att se ut som visas nedan.
Rader / kolumner | Kolumn1 | Kolumn2 | Kolumn3 |
---|---|---|---|
Rad 1 | (0,0) | (0,1) | (0.2) |
Rad2 | (1.0) | (1,1) | (1,2) |
Rad3 | (2.0) | (2.1) | (2.2) |
Som visas ovan lagrar varje skärningspunkt mellan rad och kolumn ett element i 2D-matrisen. Så om du vill komma åt det första elementet i 2d-matrisen ges det av (0, 0).
Notera att eftersom arraystorleken är 3 × 3 kan du ha 9 element i denna array.
Ett heltal matris med namnet 'myarray' på 3 rader och 2 kolumner kan deklareras enligt nedan.
int ()() myarray = new int(3)(2);
När matrisen är deklarerad och skapad är det dags att initiera den med värden.
Initiera 2d Array
Det finns olika sätt att initiera 2d-matrisen med värden. Den första metoden är den traditionella metoden för att tilldela värden till varje element.
Den allmänna syntaxen för initialisering är:
array_name(row_index)(column_index) = value;
Exempel:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Ovanstående uttalanden initialiserar alla element i den givna 2d-arrayen.
Låt oss lägga det i ett program och kontrollera utdata.
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:
Denna metod kan vara användbar när dimensionerna är mindre. När arraydimensionen växer är det svårt att använda denna metod för att initialisera elementen individuellt.
Nästa metod för att initialisera 2d-matrisen i Java är att initialisera matrisen endast vid tidpunkten för deklarationen.
Den allmänna syntaxen för denna initialiseringsmetod är nedan:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Till exempel, om du har en 2 × 3 matris av typen int, då Du kan initialisera den med deklarationen som:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Följande exempel visar 2d-arraydeklarationen 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:
mp3 musik ladda ner gratis app för android
I ovanstående program initialiseras matrisen vid tidpunkten för själva deklarationen och sedan visas värdena.
Du kan också initiera eller tilldela värdena till 2d-array med en slinga som visas nedan.
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öljande program implementerar ovanstående 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(); } } }
Produktion:
Varje element i ovanstående 2d-array tilldelas ett värde 'i + 1'. Detta gör att varje element i en rad i matrisen innehåller samma värde.
Åtkomst och skriv ut 2d Array
Du vet redan att när du initialiserar 2d-matrisen kan du initialisera de enskilda elementen i arrayen till ett värde. Detta görs genom att använda radindex och kolumnindex för matrisen för att komma åt ett visst element.
I likhet med initialisering kan du också komma åt värdet för det enskilda elementet och skriva ut det till användaren.
Den allmänna syntaxen för åtkomst till arrayelementet är:
data_typeval = array_name(row_index)(column_index);
Där array_name är den array vars element nås och data_type är samma som datatypen för array.
Följande program visar hur ett enskilt element nås och skrivs ut.
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å det här sättet kan du enkelt komma åt och skriva ut enskilda matriselement med hjälp av rad- och kolumnindex som finns i hakparenteserna (()).
Du kan skriva ut hela matrisen samtidigt i ett tabellformat som visas ovan (även kallat matrisform) med hjälp av for loop. Eftersom detta är en tvådimensionell matris måste du ha två slingor för detta. En slinga för att iterera genom rader, dvs. den yttre slingan och den inre slingan för att korsa kolumnerna.
Vid varje givet ögonblick (aktuell iteration) ges det specifika elementet i matrisen av,
array_name (i) (j);
Där 'i' är den aktuella raden och 'j' är den aktuella kolumnen.
Följande program visar utskrift av en 2d-array med en 'for' -slinga.
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 ovanstående program initialiseras 2d-matrisen och sedan skrivs elementen ut med två för öglor. Den yttre används för att hålla reda på rader medan den inre för slingan är för kolumner.
Java 2d matrislängd
En tvådimensionell array definieras som arrayen för en endimensionell array. Således, när du behöver längden på en 2d-array är den inte lika enkel som i en endimensionell array.
Egenskapen längd för en tvådimensionell matris returnerar antalet rader i matrisen. Varje rad är en endimensionell matris. Du vet redan att den tvådimensionella matrisen består av rader och kolumner. Kolumnstorleken kan variera för varje rad.
Därför kan du få storleken på varje rad genom att itera genom antalet rader.
Följande program anger längden på matrisen (antal rader) samt storleken på varje rad.
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:
En tvådimensionell matris definierad ovan har två rader. Varje rad är en endimensionell matris. Den första 1D-matrisen har 3 element (3 kolumner) medan den andra raden har 2 element.
Följande Java-program visar användningen av egenskapen längd för att skriva ut 2d-matrisen.
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 redan nämnts representerar den yttre slingan raderna och den inre för slingan representerar kolumnerna.
Notera: Det avslutande villkoret i båda slingorna använder egenskapen längd, först för att itera genom rader och sedan genom kolumner.
Java MultiDimensional Arrays
Vi har redan sett tvådimensionella matriser. Java stöder matriser med mer än två dimensioner.
Den allmänna syntaxen för en flerdimensionell matris är som följer:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Här,
d1, d2 ... dn = mått på den flerdimensionella matrisen
(d1_size) (d2_size)… (dn_size) = respektive storlek på dimensionerna
data_type = datatyp för arrayelementen
array_name = namn på flerdimensionell array
Som ett exempel på en fler flerdimensionell grupp än 2d-array, låt oss diskutera detaljerna i tredimensionella (3d) matriser.
Tredimensionella matriser i Java
Vi har redan diskuterat att en array blir mer komplex när deras dimensioner ökar. Tredimensionella matriser är komplexa för multidimensionella matriser. En tredimensionell kan definieras som en uppsättning tvådimensionella matriser.
Den allmänna definitionen av en tredimensionell matris ges nedan:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Här,
d1, d2, d3 = måttens storlek
data_type = datatyp för elementen i matrisen
array_name = namnet på 3d-arrayen
Exempel på definition av 3d-array är:
int () () () intArray = new int(2)(3)(4);
Ovanstående definition av 3d-array kan tolkas som att ha två tabeller eller matriser, 3 rader och 4 kolumner som uppgår till upp till 2x3x4 = 24 element.
Detta betyder att i en 3d-array tolkas de tre dimensionerna som:
- Antalet tabeller / matriser: Den första dimensionen anger hur många tabeller eller arrays en 3d-array kommer att ha.
- Antalet rader: Den andra dimensionen anger det totala antalet rader som en matris kommer att ha.
- Antalet kolumner: Den tredje dimensionen anger de totala kolumnerna i 3d-arrayen.
Initiera 3d-array
De metoder som används för att initialisera en 3d-array är desamma som de som används för att initiera tvådimensionella matriser.
Du kan antingen initialisera arrayen genom att tilldela värden till enskilda arrayelement eller initialisera arrayen under deklarationen.
Exemplet nedan visar initialiseringen av 3d-arrayen under deklarationen.
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 att ha initierat 3d-arrayen under deklarationen har vi öppnat de enskilda elementen i arrayen och skrivit ut dem.
Tillgångar och skriv ut 3d-matrisen
Återigen är utskrift och åtkomst till arrayelement i en tredimensionell array lik den i tvådimensionella arrays.
Programmet nedan använder slingor för att komma åt arrayelementen och skriva ut dem till konsolen.
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:
Ovanstående program visar en tabellåtergivning av en tredimensionell matris. Som visat är det en 3x2x3-array som innebär att den har 3 tabeller, 2 rader och 3 kolumner och därmed 18 element.
Det har redan nämnts att kolumnstorleken kan variera i en flerdimensionell matris. Exemplet nedan visar en tredimensionell matris med olika kolumnstorlekar.
Detta program använder också förbättrad för loop för att korsa genom matrisen och visa dess element.
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:
Ingångsmatrisen som används är en tredimensionell matris med varierad längd av kolumner. Den förbättrade för varje slinga som används för varje dimension visar innehållet i matrisen i tabellformat.
Vanliga frågor
F # 1) Vad menar du med tvådimensionellt array?
Svar: En tvådimensionell matris kallas en matrismatris och är vanligtvis organiserad i form av matriser som består av rader och kolumner. En tvådimensionell matris används främst i relationsdatabaser eller liknande datastrukturer.
F # 2) Vad är en endimensionell matris i Java?
Svar: En-dimensionell array i Java är en array med endast ett index. Detta är den enklaste formen av matriser i Java.
F # 3) Vad är skillnaden mellan en endimensionell matris och en tvådimensionell matris?
Svar: En-dimensionell array lagrar en enda sekvens av element och har bara ett index. En tvådimensionell matris lagrar en matris med matriser med element och använder två index för att komma åt dess element.
F # 4) Vad betyder det att vara tvådimensionellt?
Svar: Tvådimensionellt betyder endast två dimensioner. I en geometrisk värld är objekt som bara har höjd och bredd tvådimensionella eller 2D-objekt. Dessa objekt har inte tjocklek eller djup.
Triangel, rektanglar etc. är 2D-objekt. I mjukvaru termer betyder tvådimensionell fortfarande att ha två dimensioner och vi definierar vanligtvis datastrukturer som matriser som kan ha 1, 2 eller fler dimensioner.
hur man använder solarmovie utan att registrera sig
F # 5) Vilken kommer först i en matris - rader eller kolumner?
Svar: Tvådimensionella matriser representeras som matriser och matriser skrivs vanligtvis i termer av rader x kolumner. Till exempel, en matris av storlek 2 × 3 har 2 rader och 3 kolumner. Därför för 2D-matrisen också kommer rader först och kolumner därefter.
Slutsats
Det här handlade om flerdimensionella matriser i Java. Vi har diskuterat alla aspekter av tvådimensionella matriser samt en matris med mer än två dimensioner.
Dessa kallas vanligtvis array eller arrays eftersom varje element är en annan array i fallet med flerdimensionella arrays. Således kan vi säga att en array innehåller en annan array eller helt enkelt en array med arrays.
I våra kommande handledning kommer vi att utforska mer om matriser och sedan gå vidare till andra samlingar.
=> Se upp den enkla Java-träningsserien här.
Rekommenderad läsning
- Java Array - Hur man skriver ut delar av en array i Java?
- Java Generic Array - Hur man simulerar generiska arrays i Java?
- Flerdimensionella matriser och jagade matriser i C #
- Introduktion till Java Arrays och relaterade begrepp
- Flerdimensionella matriser i C ++
- Java datatyper, slingor, matriser, switch och påståenden
- Java Array - Förklara, skapa och initialisera en array i Java
- Java Array Length Tutorial With Code Exempel