Multi Dimensional ArrayList di Java

1. Ikhtisar

Membuat ArrayList multidimensi sering kali muncul selama pemrograman. Dalam banyak kasus, ada kebutuhan untuk membuat dua dimensi ArrayList atau tiga dimensi ArrayList .

Dalam tutorial ini, kita akan membahas cara membuat ArrayList multidimensi di Java.

2. Daftar Array Dua Dimensi

Misalkan kita ingin merepresentasikan graf dengan 3 simpul, diberi nomor 0 sampai 2. Selain itu, anggaplah ada 3 sisi pada graf (0, 1), (1, 2), dan (2, 0), di mana sepasang dari simpul mewakili sebuah tepi.

Kita dapat merepresentasikan edge dalam ArrayList 2-D dengan membuat dan mengisi ArrayList dari ArrayList .

Pertama, mari buat 2-D ArrayList baru :

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

Selanjutnya, kita akan menginisialisasi setiap elemen ArrayList dengan ArrayList lainnya :

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

Akhirnya, kita bisa menambahkan semua sisi (0, 1), (1, 2), dan (2, 0), ke 2-D ArrayList kita :

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

Mari kita asumsikan juga bahwa grafik kita bukanlah grafik berarah. Jadi, kita juga perlu menambahkan edge (1, 0), (2, 1), dan (0, 2), ke ArrayList 2-D kita :

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

Kemudian, untuk mengulang seluruh grafik, kita dapat menggunakan for loop ganda:

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. Tiga-Dimensi ArrayList

Di bagian sebelumnya, kami membuat ArrayList dua dimensi . Mengikuti logika yang sama, mari buat ArrayList tiga dimensi :

Mari kita asumsikan bahwa kita ingin merepresentasikan ruang 3-D. Jadi, setiap titik dalam ruang 3-D ini akan diwakili oleh tiga koordinat, katakanlah, X, Y, dan Z.

Selain itu, mari kita bayangkan masing-masing titik tersebut akan memiliki warna, baik Merah, Hijau, Biru, atau Kuning. Sekarang, setiap titik (X, Y, Z) dan warnanya dapat diwakili oleh ArrayList tiga dimensi .

Untuk mempermudah, anggaplah kita sedang membuat ruang 3-D (2 x 2 x 2). Ini akan memiliki delapan poin: (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0 , 1), (1, 1, 0), dan (1, 1, 1).

Pertama-tama mari kita inisialisasi variabel dan 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);
    

Kemudian, mari kita inisialisasi setiap elemen ArrayList dengan ArrayList :

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

Sekarang, kita bisa menambahkan warna ke titik di luar angkasa. Mari tambahkan warna Merah untuk poin (0, 0, 0) dan (0, 0, 1):

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

Kemudian, mari kita atur warna Biru untuk poin (0, 1, 0) dan (0, 1, 1):

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

Dan serupa, kami dapat terus mengisi titik di ruang untuk warna lain.

Perhatikan bahwa titik dengan koordinat (i, j, k), memiliki informasi warnanya yang disimpan dalam elemen ArrayList 3-D berikut :

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

As we have seen in this example, the space variable is an ArrayList. Also, each element of this ArrayList is a 2-D ArrayList (similar to what we saw in section 2).

Note that the index of elements in our spaceArrayList represents the X coordinate, while each 2-D ArrayList, present at that index, represents the (Y, Z) coordinates.

4. Conclusion

In this article, we discussed how to create a multidimensional ArrayList in Java. We saw how we can represent a graph using a 2-D ArrayList. Moreover, we also explored how to represent 3-D space coordinates using a 3-D ArrayList.

Pertama kali, kami menggunakan ArrayList dari ArrayList, sedangkan yang kedua, kami menggunakan ArrayList dari 2-D ArrayList . Demikian pula, untuk membuat N-Dimensional ArrayList, kita dapat memperluas konsep yang sama.

Implementasi lengkap dari tutorial ini dapat ditemukan di GitHub.