1. Gambaran keseluruhan
Membuat ArrayList pelbagai dimensi sering muncul semasa pengaturcaraan. Dalam banyak kes, terdapat keperluan untuk mewujudkan dua dimensi ArrayList atau tiga dimensi ArrayList .
Dalam tutorial ini, kita akan membincangkan cara membuat ArrayList multidimensi di Java.
2. Senarai Array Dua Dimensi
Andaikan kita mahu mewakili grafik dengan 3 bucu, bernombor 0 hingga 2. Di samping itu, mari kita anggap ada 3 tepi dalam grafik (0, 1), (1, 2), dan (2, 0), di mana pasangan bucu mewakili tepi.
Kita dapat mewakili tepi dalam ArrayList 2-D dengan membuat dan mengisi ArrayList dari ArrayList s.
Pertama, mari buat ArrayList 2-D baru :
int vertexCount = 3; ArrayList
graph = new ArrayList(vertexCount);
Seterusnya, kami akan memulakan setiap elemen ArrayList dengan ArrayList yang lain :
for(int i=0; i < vertexCount; i++) { graph.add(new ArrayList()); }
Akhirnya, kita boleh menambah semua tepi (0, 1), (1, 2), dan (2, 0), ke ArrayList 2-D kami :
graph.get(0).add(1); graph.get(1).add(2); graph.get(2).add(0);
Mari kita anggap bahawa graf kita bukan graf yang diarahkan. Jadi, kita juga perlu menambahkan bahagian tepi (1, 0), (2, 1), dan (0, 2), ke ArrayList 2-D kami :
graph.get(1).add(0); graph.get(2).add(1); graph.get(0).add(2);
Kemudian, untuk melengkapkan keseluruhan graf, kita boleh menggunakan gelung berganda untuk:
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. Senarai Array Tiga Dimensi
Pada bahagian sebelumnya, kami membuat ArrayList dua dimensi . Mengikut logik yang sama, mari buat ArrayList tiga dimensi :
Mari kita anggap bahawa kita mahu mewakili 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 setiap titik akan mempunyai warna, sama ada Merah, Hijau, Biru, atau Kuning. Sekarang, setiap titik (X, Y, Z) dan warnanya dapat diwakili oleh ArrayList tiga dimensi .
Untuk kesederhanaan, anggaplah bahawa kita membuat ruang 3-D (2 x 2 x 2) Ia akan mempunyai lapan mata: (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).
Mari mulakan permulaan pemboleh ubah dan ArrayList 3-D :
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 mulakan 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 dapat menambahkan warna ke titik di ruang. Mari tambah warna Merah untuk titik (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 tetapkan warna Biru untuk titik (0, 1, 0) dan (0, 1, 1):
space.get(0).get(1).add(0,"Blue"); space.get(0).get(1).add(1,"Blue");
Dan juga, kita dapat terus mengisi titik di ruang untuk warna lain.
Perhatikan bahawa titik dengan koordinat (i, j, k), mempunyai maklumat warnanya yang tersimpan dalam elemen ArrayList 3-D berikut :
space.get(i).get(j).get(k)
Seperti yang telah kita lihat dalam contoh ini, pemboleh ubah ruang adalah ArrayList . Juga, setiap elemen ini ArrayList ialah 2-D ArrayList (sama dengan apa yang kita lihat dalam bahagian 2).
Perhatikan bahawa indeks elemen di ruang kita ArrayList mewakili koordinat X, sementara setiap ArrayList 2-D , yang terdapat pada indeks itu, mewakili koordinat (Y, Z).
4. Kesimpulan
Dalam artikel ini, kami membincangkan cara membuat ArrayList multidimensi di Java. Kami melihat bagaimana kami dapat mewakili grafik menggunakan ArrayList 2-D . Selain itu, kami juga meneroka cara mewakili koordinat ruang 3-D menggunakan ArrayList 3-D .
Kali pertama, kami menggunakan ArrayList of ArrayList, sementara kali kedua, kami menggunakan ArrayList 2-D ArrayList . Begitu juga, untuk membuat ArrayList N-Dimensional , kita dapat memperluas konsep yang sama.
Pelaksanaan penuh tutorial ini boleh didapati di GitHub.