JavaJava中的多維ArrayList

1.概述

通常在編程過程中會創建多維ArrayList 。在許多情況下,需要創建二維ArrayList或三維ArrayList

在本教程中,我們將討論如何在Java中創建多維ArrayList

2.二維ArrayList

假設我們要表示一個具有3個頂點(編號為0到2)的圖形。另外,假設圖形中有3個邊(0、1),(1、2)和(2、0),其中一對的頂點表示邊。

我們可以通過創建並填充ArrayListArrayList來表示二維ArrayList中的邊。

首先,讓我們創建一個新的2D ArrayList

int vertexCount = 3;

 ArrayList<ArrayList<Integer>> graph = new ArrayList<>(vertexCount);

接下來,我們將使用另一個ArrayList初始化ArrayList的每個元素:

for(int i=0; i < vertexCount; i++) {

 graph.add(new ArrayList());

 }

最後,我們可以將所有邊(0,1),(1,2)和(2,0)添加到我們的二維ArrayList中

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

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

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

讓我們還假設我們的圖不是有向圖。因此,我們還需要將邊(1,0),(2,1)和(0,2)添加到我們的二維ArrayList中

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

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

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

然後,要遍歷整個圖,我們可以使用double for循環:

int vertexCount = graph.size();

 for (int i = 0; i < vertexCount; i++) {

 int edgeCount = graph.get(i).size();

 for (int j = 0; j < edgeCount; j++) {

 Integer startVertex = i;

 Integer endVertex = graph.get(i).get(j);

 System.out.printf("Vertex %d is connected to vertex %d%n", startVertex, endVertex);

 }

 }

3.三維ArrayList

在上一節中,我們創建了一個二維ArrayList。按照相同的邏輯,讓我們創建一個三維ArrayList

假設我們要表示一個3-D空間。因此,此3-D空間中的每個點將由三個坐標表示,例如X,Y和Z。

除此之外,讓我們想像一下這些點中的每一個都將具有紅色,綠色,藍色或黃色的顏色。現在,每個點(X,Y,Z)及其顏色可以由三維ArrayList表示。

為簡單起見,讓我們假設我們正在創建(2 x 2 x 2)3-D空間。它將具有八個點:(0,0,0),(0,0,1),(0,1,0),(0,1,1),(1,0,0),(1,0 ,1),(1、1、0)和(1、1、1)。

讓我們首先初始化變量和3-D ArrayList

int x_axis_length = 2;

 int y_axis_length = 2;

 int z_axis_length = 2;


 ArrayList<ArrayList<ArrayList<String>>> space = new ArrayList<>(x_axis_length);

然後,讓我們使用ArrayList <ArrayList >初始化ArrayList的每個元素:

for (int i = 0; i < x_axis_length; i++) {

 space.add(new ArrayList<ArrayList<String>>(y_axis_length));

 for (int j = 0; j < y_axis_length; j++) {

 space.get(i).add(new ArrayList<String>(z_axis_length));

 }

 }

現在,我們可以為空間中的點添加顏色。讓我們為點(0,0,0)和(0,0,1)添加紅色:

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

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

然後,為點(0,1,0)和(0,1,1)設置藍色:

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

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

同樣,我們可以繼續在空間中填充其他顏色的點。

請注意,坐標為(i,j,k)的點的顏色信息存儲在以下3-D ArrayList元素中:

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

如本例所示, space變量是ArrayList另外,此ArrayList的每個元素都是一個二維ArrayList (類似於我們在第2節中看到的)。

請注意,空間**ArrayList中元素的索引表示X坐標,而存在於該索引處的每個2-D ArrayList表示(Y,Z)坐標。

4。結論

在本文中,我們討論瞭如何在Java中創建多維ArrayList 。我們看到瞭如何使用二維ArrayList表示圖。此外,我們還探索瞭如何使用3-D ArrayList表示3-D空間坐標。

在第一時間,我們使用的ArrayListArrayList,而在第二時間,我們使用2-d的ArrayListArrayList。同樣,要創建N維ArrayList,我們可以擴展相同的概念。

可以在GitHub上找到本教程的完整實現。