Java, som de flesta andra kraftfulla programmeringsspråk, stöder multidimensionella matriser, som två-dimensionella och tredimensionella matriser. Tidigare har vi diskuterat om att arbeta med endimensionella matriser i Java. I den här handledningen ska vi diskutera två-dimensionella och tredimensionella matriser. Samma principer tillämpas också på matriser med högre dimension.
2 Dimensionell matris i Java
Det finns två sätt att implementera tvådimensionelltarrayer. Många språk reserverar ett minnesblock som är tillräckligt stort för att hålla alla element i hela, rektangulära, matris (antal rader gånger antal kolumner gånger elementets storlek). Java gör inte detta. Istället bygger Java flerdimensionella matriser från många endimensionella matriser, den så kallade "arrays of arrays" -metoden.
Två-dimensionella matriser definieras som ”en matrisav matriser ”. Eftersom en arraytyp är en förstklassig Java-typ, kan vi ha en matris med ints, en matris med strängar eller en matris med objekt. Till exempel kommer en matris med ints att ha typen int []. På liknande sätt kan vi ha int [] [], som representerar en "matris med matriser". En sådan matris sägs vara en tvådimensionell matris.
Följande kommando:
int[][] twodimArray = new int[3][4];
förklarar en variabel, twodimArray, av typenint [] [], och den initierar den variabeln för att hänvisa till ett nyskapat objekt. Detta objekt är en matris med matriser av ints. Här indikerar notationen int [3] [4] att det finns 3 matriser av ints i matrisen twodimArray, och att det finns 4 ints i vart och ett av dessa matriser.
Det finns ett par intressanta konsekvenser av detta: Rader kan ha olika storlekar. Dessutom är varje rad ett objekt (en matris) som kan användas oberoende.
Deklaration
int[][] a1; // Declares, but doesn't allocate, 2-dim array.
Tilldelning
Som med alla matriser måste det nya sökordet användas för att tilldela minne för en matris. Till exempel,
int[][] a1 = new int[3][4];
Eller:
int[][] a1; a1 = new int[3][4];
Eller:
double[][] ID3 = { {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}};
Detta tilldelar en int array med 3 rader och 4 kolumner. Precis som med alla objekt initialiseras värdena till noll (till skillnad från lokala variabler som är uninitialiserade).
Detta fördelar faktiskt 5 objekt: en endimensionell matris med fyra element för var och en av raderna och en endimensionell matris med 3 element, där varje element pekar på lämplig radgrupp.
bearbetning
Ofta behandlas tvådimensionella matriser med kapslade för slingor. Lägg märke till i följande exempel hur raderna hanteras som separata objekt.
Java-program
public class TwoDimArrayDemo{ public static void main(String[] args) { int[][] twoDimArray = new int[3][4]; for (int i=0; i<twoDimArray.length; i++) { for (int j=0; j<twoDimArray[i].length; j++) { twoDimArray[i][j] = i; System.out.print(" " + twoDimArray[i][j]); } System.out.println(""); } } }
Produktion
3 Dimensionell matris i Java
Java-program
class Array3D{ public static void main(String args[]){ int[][][] a2 = new int[2][2][4]; for (int i = 0; i < a2.length; i++) for (int j = 0; j < a2[i].length; j++) for (int k = 0; k < a2[i][j].length; k++) System.out.println("a2[" + i + "][" + j + "][" + k + "] = "+ a2[i][j][k]); } }
Produktion
Förklaring av kod och utdata
Flerdimensionell matris bearbetas igenomkapslade öglor. För n-dimensionell matris behöver du ett antal kapslade slingor. Som sagt standardvärdet för varje position i en matris är '0'. Det är bevisat från utgången från 3-dimensionell matris.
Kolla in mer användbara handledning och definitiva riktlinjer för Java-programmering här.
kommentarer