Flerdimensjonal ArrayList i Java

1. Oversikt

Å skape et flerdimensjonalt ArrayList kommer ofte opp under programmering. I mange tilfeller er det behov for å lage en todimensjonal ArrayList eller en tredimensjonal ArrayList.

I denne opplæringen vil vi diskutere hvordan du lager en flerdimensjonal ArrayList i Java.

2. To-dimensjonal ArrayList

Anta at vi vil representere en graf med 3 hjørner, nummerert 0 til 2. I tillegg antar vi at det er 3 kanter i grafen (0, 1), (1, 2) og (2, 0), hvor et par av hjørner representerer en kant.

Vi kan representere kantene i en 2-D ArrayList ved å opprette og fylle ut en ArrayList av ArrayLists.

La oss først lage en ny 2-D ArrayList:

int vertexCount = 3; ArrayList graf = ny ArrayList (vertexCount);

Deretter initialiserer vi hvert element av ArrayList med en annen ArrayList:

for (int i = 0; i <vertexCount; i ++) {graph.add (ny ArrayList ()); }

Til slutt kan vi legge til alle kantene (0, 1), (1, 2) og (2, 0) til vår 2-D ArrayList:

graph.get (0) .add (1); graph.get (1). legge til (2); graph.get (2) .add (0);

La oss også anta at grafen vår ikke er en rettet graf. Så vi må også legge til kantene (1, 0), (2, 1) og (0, 2) til vår 2-D ArrayList:

graph.get (1) .add (0); graph.get (2) .add (1); graph.get (0) .add (2);

For å løkke gjennom hele grafen, kan vi bruke en dobbel for løkke:

int vertexCount = graph.size (); for (int i = 0; i <vertexCount; i ++) {int edgeCount = graph.get (i) .størrelse (); for (int j = 0; j <edgeCount; j ++) {Heltall startVertex = i; Heltall endVertex = graph.get (i) .get (j); System.out.printf ("Vertex% d er koblet til toppunkt% d% n", startVertex, endVertex); }}

3. Tredimensjonalt ArrayList

I forrige avsnitt opprettet vi en todimensjonal ArrayList. Etter samme logikk, la oss lage en tredimensjonal ArrayList:

La oss anta at vi vil representere et 3D-rom. Så hvert punkt i dette 3D-rommet vil bli representert av tre koordinater, for eksempel X, Y og Z.

I tillegg til det, la oss forestille oss at hvert av disse punktene vil ha en farge, enten rød, grønn, blå eller gul. Nå kan hvert punkt (X, Y, Z) og fargen være representert med et tredimensjonalt ArrayList.

For enkelhets skyld, la oss anta at vi lager et (2 x 2 x 2) 3-D-rom. Den vil ha åtte poeng: (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0 , 1), (1, 1, 0) og (1, 1, 1).

La oss først initialisere variablene og 3-D ArrayList:

int x_axis_length = 2; int y_axis_length = 2; int z_axis_length = 2; ArrayList<>> space = new ArrayList (x_axis_length);

La oss deretter initialisere hvert element av ArrayList med ArrayList:

for (int i = 0; i <x_axis_length; i ++) {space.add (ny ArrayList(y_akselengde)); for (int j = 0; j <y_axis_length; j ++) {space.get (i) .add (new ArrayList (z_axis_length)); }}

Nå kan vi legge til farger på punkter i rommet. La oss legge til rød farge for poeng (0, 0, 0) og (0, 0, 1):

space.get (0) .get (0) .add (0, "Red"); space.get (0) .get (0) .add (1, "Red");

La oss deretter sette blå farge for poeng (0, 1, 0) og (0, 1, 1):

space.get (0) .get (1) .add (0, "Blue"); space.get (0) .get (1) .add (1, "Blue");

Og på samme måte kan vi fortsette å fylle ut punkter i rommet for andre farger.

Vær oppmerksom på at et punkt med koordinater (i, j, k), har sin fargeinformasjon lagret i følgende 3-D ArrayList element:

space.get (i) .get (j) .get (k) 

Som vi har sett i dette eksemplet, er rom variabel er en ArrayList. Også hvert element av dette ArrayList er en 2-D ArrayList (ligner på det vi så i avsnitt 2).

Merk at indeksen over elementer i vår romArrayList representerer X-koordinaten, mens hver 2-D ArrayListrepresenterer (Y, Z) koordinatene.

4. Konklusjon

I denne artikkelen diskuterte vi hvordan du lager et flerdimensjonalt ArrayList i Java. Vi så hvordan vi kan representere en graf ved hjelp av en 2-D ArrayList. Videre har vi også utforsket hvordan vi kan representere 3D-romkoordinater ved hjelp av en 3-D ArrayList.

Første gang brukte vi en ArrayList av ArrayList, mens andre gang brukte vi en ArrayList av 2-D ArrayList. På samme måte, for å lage en N-dimensjonal ArrayList, vi kan utvide det samme konseptet.

Den fulle implementeringen av denne veiledningen finner du på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found