1. 概要

多次元ArrayListの作成は、プログラミング中に頻繁に発生します。 多くの場合、2次元のArrayListまたは3次元のArrayListを作成する必要があります。

このチュートリアルでは、Javaで多次元ArrayListを作成する方法について説明します。

2. 2次元ArrayList

グラフを0から2までの番号が付けられた3つの頂点で表現したいとします。 さらに、グラフに3つのエッジ(0、1)、(1、2)、および(2、0)があると仮定します。ここで、頂点のペアはエッジを表します。

ArrayListArrayListを作成して入力することにより、2次元ArrayListでエッジを表すことができます。

まず、新しい2次元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)を2次元ArrayListに追加できます。

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

また、私たちのグラフが有向グラフではないと仮定しましょう。 したがって、エッジ(1、0)、(2、1)、および(0、2)を2-D ArrayListに追加する必要もあります。

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

次に、グラフ全体をループするために、doubleforループを使用できます。

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. 3次元ArrayList

前のセクションでは、2次元の ArrayListを作成しました。同じロジックに従って、3次元のArrayListを作成しましょう。

3D空間を表現したいとします。 したがって、この3D空間の各点は、X、Y、Zの3つの座標で表されます。

それに加えて、これらの各ポイントが赤、緑、青、または黄色のいずれかの色になると想像してみましょう。 これで、各ポイント(X、Y、Z)とその色を、3次元のArrayList。で表すことができます。

簡単にするために、(2 x 2 x 2)3D空間を作成していると仮定します。 (0、0、0)、(0、0、1)、(0、1、0)、(0、1、1)、(1、0、0)、(1、0)の8つのポイントがあります。 、1)、(1、1、0)、および(1、1、1)。

まず、変数と3D 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);

次に、の各要素を初期化します。 配列リスト配列リスト >>

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)を持つポイントの色情報は、次の3D ArrayList要素に格納されていることに注意してください。

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

この例で見たように、space変数はArrayListです。また、このArrayListの各要素は2-D ArrayList です(セクション2)で見ました。

スペースArrayList の要素のインデックスはX座標を表し、そのインデックスに存在する各2-D ArrayList は(Y、 Z)座標。

4. 結論

この記事では、Javaで多次元ArrayListを作成する方法について説明しました。 2次元ArrayListを使用してグラフを表現する方法を確認しました。 さらに、3D ArrayListを使用して3D空間座標を表現する方法についても説明しました。

1回目はArrayList、 ArrayList を使用し、2回目は2-D ArrayListArrayListを使用しました。 同様に、 N-Dimensional ArrayListを作成するために、同じ概念を拡張できます。

このチュートリアルの完全な実装は、GitHubにあります。