Javaの多次元ArrayList
1. 概要
多次元ArrayListの作成は、プログラミング中に頻繁に発生します。 多くの場合、2次元のArrayListまたは3次元のArrayListを作成する必要があります。
このチュートリアルでは、Javaで多次元ArrayListを作成する方法について説明します。
2. 2次元ArrayList
グラフを0から2までの番号が付けられた3つの頂点で表現したいとします。 さらに、グラフに3つのエッジ(0、1)、(1、2)、および(2、0)があると仮定します。ここで、頂点のペアはエッジを表します。
ArrayListのArrayListを作成して入力することにより、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 ArrayListのArrayListを使用しました。 同様に、 N-Dimensional ArrayListを作成するために、同じ概念を拡張できます。
このチュートリアルの完全な実装は、GitHubのにあります。