Zoznam viacerých dimenzií v jazyku Java

1. Prehľad

Vytváranie multidimenzionálneho ArrayList sa často objaví počas programovania. V mnohých prípadoch je potrebné vytvoriť dvojrozmerný priestor ArrayList alebo trojrozmerný ArrayList.

V tomto výučbe si povieme, ako vytvoriť multidimenzionálny ArrayList v Jave.

2. Dvojrozmerné ArrayList

Predpokladajme, že chceme reprezentovať graf s 3 vrcholmi, očíslovanými od 0 do 2. Ďalej predpokladajme, že v grafe sú 3 hrany (0, 1), (1, 2) a (2, 0), kde je dvojica vrcholov predstavuje hranu.

Okraje môžeme znázorniť v 2-D ArrayList vytvorením a vyplnením súboru ArrayList z ArrayLists.

Najskôr vytvorme nový 2-D ArrayList:

int vertexCount = 3; ArrayList graph = new ArrayList (vertexCount);

Ďalej inicializujeme každý prvok ArrayList s inou ArrayList:

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

Nakoniec môžeme pridať všetky hrany (0, 1), (1, 2) a (2, 0) do nášho 2D ArrayList:

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

Predpokladajme tiež, že náš graf nie je smerovaný. Takže musíme tiež pridať hrany (1, 0), (2, 1) a (0, 2) do nášho 2D ArrayList:

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

Potom, aby sme prešli celým grafom, môžeme použiť slučku for:

int vertexCount = graph.size (); pre (int i = 0; i <vertexCount; i ++) {int edgeCount = graph.get (i) .size (); for (int j = 0; j <edgeCount; j ++) {Integer startVertex = i; Celé číslo endVertex = graph.get (i) .get (j); System.out.printf ("Vrchol% d je pripojený k vrcholu% d% n", startVertex, endVertex); }}

3. Trojrozmerný ArrayList

V predchádzajúcej časti sme vytvorili dvojrozmerný ArrayList. Podľa rovnakej logiky vytvorme trojrozmerný ArrayList:

Predpokladajme, že chceme reprezentovať 3-D priestor. Takže každý bod v tomto trojrozmernom priestore bude predstavovaný tromi súradnicami, povedzme X, Y a Z.

Okrem toho si predstavme, že každý z týchto bodov bude mať farbu, červenú, zelenú, modrú alebo žltú. Teraz môže byť každý bod (X, Y, Z) a jeho farba znázornená trojrozmerne ArrayList.

Pre jednoduchosť predpokladajme, že vytvárame (2 x 2 x 2) 3-D priestor. Bude mať osem bodov: (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0 , 1), (1, 1, 0) a (1, 1, 1).

Najskôr inicializujme premenné a 3-D ArrayList:

int x_axis_length = 2; int y_axis_length = 2; int z_axis_length = 2; ArrayList<>> medzera = nový ArrayList (x_axis_length);

Potom poďme inicializovať každý prvok ArrayList s ArrayList:

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

Teraz môžeme pridávať farby k bodom v priestore. Pridajme červenú farbu pre body (0, 0, 0) a (0, 0, 1):

space.get (0) .get (0) .add (0, "červená"); space.get (0) .get (0) .add (1, "červená");

Potom nastavíme modrú farbu pre body (0, 1, 0) a (0, 1, 1):

space.get (0) .get (1) .add (0, "modrá"); space.get (0) .get (1) .add (1, „modrý“);

A podobne môžeme pokračovať v obsadzovaní bodov v priestore pre ďalšie farby.

Všimnite si, že bod so súradnicami (i, j, k) má svoje farebné informácie uložené v nasledujúcom 3-D ArrayList element:

medzera.get (i) .get (j) .get (k) 

Ako sme videli v tomto príklade, priestor premenná je ArrayList. Tiež každý jeho prvok ArrayList je 2-D ArrayList (podobné tomu, čo sme videli v časti 2).

Všimnite si, že index prvkov v našom priestorArrayList predstavuje súradnicu X, pričom každá 2-D ArrayList, prítomný v tomto indexe, predstavuje (Y, Z) súradnice.

4. Záver

V tomto článku sme diskutovali o tom, ako vytvoriť multidimenzionálny ArrayList v Jave. Videli sme, ako môžeme znázorniť graf pomocou 2-D ArrayList. Okrem toho sme tiež preskúmali, ako reprezentovať 3D priestorové súradnice pomocou 3D ArrayList.

Prvýkrát sme použili ArrayList z ArrayList, zatiaľ čo druhýkrát sme použili ArrayList 2-D ArrayList. Podobne vytvoriť N-dimenzionálny ArrayList, môžeme rozšíriť ten istý koncept.

Celú implementáciu tohto tutoriálu nájdete na GitHub.


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