Array Multi-Dimensi Di Jawa

1. Ikhtisar

Array multi-dimensi di Java adalah larik yang terdiri dari larik dengan berbagai ukuran sebagai elemennya. Ini juga disebut sebagai "array array" atau "array compang-camping" atau "array bergerigi".

Dalam tutorial singkat ini, kita akan melihat lebih dalam tentang mendefinisikan dan bekerja dengan array multi-dimensi.

2. Membuat Array Multi Dimensi

Mari kita mulai dengan melihat cara-cara membuat array multi-dimensi:

2.1. Bentuk Singkatan

Cara mudah untuk mendefinisikan array multi-dimensi adalah:

int[][] multiDimensionalArr = {{1, 2}, {3, 4, 5}, {6, 7, 8, 9}};

Di sini, kami telah mendeklarasikan dan menginisialisasi multiDimensionalArr dalam satu langkah.

2.2. Deklarasi dan Kemudian Inisialisasi

Kita mulai dengan mendeklarasikan larik multidimensi berukuran tiga:

int[][] multiDimensionalArr = new int[3][];

Di sini, kami telah menghilangkan untuk menentukan dimensi kedua karena ini akan bervariasi .

Selanjutnya, mari melangkah lebih jauh dengan mendeklarasikan dan menginisialisasi masing-masing elemen dalam multiDimensionalArr :

multiDimensionalArr[0] = new int[] {1, 2}; multiDimensionalArr[1] = new int[] {3, 4, 5}; multiDimensionalArr[2] = new int[] {6, 7, 8, 9};

Kita juga dapat dengan mudah mendeklarasikan elemennya tanpa menginisialisasi mereka:

multiDimensionalArr[0] = new int[2]; multiDimensionalArr[1] = new int[3]; multiDimensionalArr[2] = new int[4];

Ini kemudian dapat diinisialisasi, misalnya dengan menggunakan input pengguna.

Kita juga bisa menggunakan metode java.util.Arrays.fill untuk menginisialisasi elemen array:

void initialize2DArray(int[][] multiDimensionalArray) { for (int[] array : multiDimensionalArray) { Arrays.fill(array, 7); } } 

Semua elemen dalam array diinisialisasi dengan nilai yang sama.

3. Representasi Memori

Bagaimana representasi memori dari multiDimensionalArr kita akan terlihat?

Seperti yang kita ketahui, array di Java hanyalah sebuah objek, yang elemennya bisa berupa primitif atau referensi. Jadi, larik dua dimensi di Jawa dapat dianggap sebagai larik larik satu dimensi.

MultiDimensionalArr kami di memori akan terlihat mirip dengan:

Jelas, multiDimensionalArr [0] memegang referensi ke array satu dimensi ukuran 2, multiDimensionalArr [1] memegang referensi ke array satu dimensi lain berukuran 3 dan seterusnya.

Dengan cara ini Java memungkinkan kita untuk mendefinisikan dan menggunakan array multi-dimensi.

4. Iterasi Elemen

Kita dapat mengulang array multi-dimensi seperti array lainnya di Java.

Mari kita coba iterasi dan inisialisasi elemen multiDimensionalArr menggunakan input pengguna:

void initializeElements(int[][] multiDimensionalArr) { Scanner sc = new Scanner(System.in); for (int outer = 0; outer < multiDimensionalArr.length; outer++) { for (int inner = 0; inner < multiDimensionalArr[outer].length; inner++) { multiDimensionalArr[outer][inner] = sc.nextInt(); } } }

Di sini, multiDimensionalArr [outer] .length adalah panjang array pada indeks terluar di multiDimensionalArr .

Ini membantu kami untuk memastikan bahwa kami mencari elemen hanya dalam rentang valid dari setiap sub-larik , sehingga menghindari ArrayIndexOutOfBoundException .

5. Elemen Pencetakan

Bagaimana jika kita ingin mencetak elemen array multi-dimensi kita?

Salah satu cara yang jelas adalah dengan menggunakan logika iterasi yang telah kita bahas. Ini melibatkan iterasi melalui setiap item dalam larik multi-dimensi kita, yang merupakan larik itu sendiri, dan kemudian mengulangi larik anak itu - satu elemen pada satu waktu.

Opsi lain yang kita miliki adalah menggunakan metode helper java.util.Arrays.toString () :

void printElements(int[][] multiDimensionalArr) { for (int index = 0; index < multiDimensionalArr.length; index++) { System.out.println(Arrays.toString(multiDimensionalArr[index])); } }

Dan kami akhirnya memiliki kode yang bersih dan sederhana. Output konsol yang dihasilkan akan terlihat seperti:

[1, 2] [3, 4, 5] [6, 7, 8, 9]

6. Panjang Elemen

Kita dapat menemukan panjang array dalam array multi-dimensi dengan melakukan iterasi pada array utama:

int[] findLengthOfElements(int[][] multiDimensionalArray) { int[] arrayOfLengths = new int[multiDimensionalArray.length]; for (int i = 0; i < multiDimensionalArray.length; i++) { arrayOfLengths[i] = multiDimensionalArray[i].length; } return arrayOfLengths; }

Kami juga dapat menemukan panjang array menggunakan aliran Java:

Integer[] findLengthOfArrays(int[][] multiDimensionalArray) { return Arrays.stream(multiDimensionalArray) .map(array -> array.length) .toArray(Integer[]::new); }

7. Salin Array 2-D

Kita dapat menyalin array 2-D menggunakan metode Arrays.copyOf :

int[][] copy2DArray(int[][] arrayOfArrays) { int[][] copied2DArray = new int[arrayOfArrays.length][]; for (int i = 0; i < arrayOfArrays.length; i++) { int[] array = arrayOfArrays[i]; copied2DArray[i] = Arrays.copyOf(array, array.length); } return copied2DArray; }

Kami juga dapat mencapai ini dengan menggunakan aliran Java:

Integer[][] copy2DArray(Integer[][] arrayOfArrays) { return Arrays.stream(arrayOfArrays) .map(array -> Arrays.copyOf(array, array.length)) .toArray(Integer[][]::new); }

8. Kesimpulan

Pada artikel ini, kita melihat apa itu larik multi-dimensi, bagaimana tampilannya dalam memori dan cara kita mendefinisikan dan menggunakannya.

Seperti biasa, kode sumber dari contoh yang disajikan dapat ditemukan di GitHub.