- - Handledning: Flerdimensionell matris i Java

Handledning: Flerdimensionell matris i Java

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

kod för tvådimensionell matris i Java

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

kod för 3-dimensionell Array i Java

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