Pertimbangkan:
int[][] multD = new int[5][];
multD[0] = new int[10];
Ini adalah cara anda membuat array dua dimensi dengan 5 baris dan 10 kolom?
Aku melihat kode ini secara online, tapi sintaks didn't make sense.
Coba yang berikut ini:
int[][] multi = new int[5][10];
... yang merupakan tangan pendek untuk sesuatu seperti ini:
int[][] multi = new int[5][];
multi[0] = new int[10];
multi[1] = new int[10];
multi[2] = new int[10];
multi[3] = new int[10];
multi[4] = new int[10];
Perhatikan bahwa setiap elemen akan diinisialisasi dengan nilai default untuk int
, 0
, sehingga di atas juga setara dengan:
int[][] multi = new int[][]{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
Kita dapat mendeklarasikan dua dimensi array dan langsung menyimpan elemen pada saat deklarasi sebagai:
int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
Di sini int merupakan tipe integer elemen disimpan ke dalam array dan array nama 'tanda'. int adalah datatype untuk semua elemen terwakili dalam "{" dan "" kawat gigi karena array adalah kumpulan dari elemen-elemen yang memiliki tipe data yang sama.
Kembali ke pernyataan tertulis di atas: setiap baris dari unsur-unsur yang harus ditulis di dalam kurung kurawal. Baris dan elemen-elemen dalam setiap baris harus dipisahkan oleh koma.
Sekarang mengamati pernyataan: anda bisa mendapatkan ada 3 baris dan 5 kolom, sehingga JVM menciptakan 3 * 5 = 15 blok dari memori. Blok ini dapat secara individual disebut ta sebagai:
marks[0][0] marks[0][1] marks[0][2] marks[0][3] marks[0][4]
marks[1][0] marks[1][1] marks[1][2] marks[1][3] marks[1][4]
marks[2][0] marks[2][1] marks[2][2] marks[2][3] marks[2][4]
CATATAN:
Jika anda ingin menyimpan n elemen maka indeks array dimulai dari nol dan berakhir pada n-1.
Cara lain untuk menciptakan dua dimensi array adalah dengan mendeklarasikan array terlebih dahulu dan kemudian memori yang dialokasikan untuk itu dengan menggunakan operator baru.
int marks[][]; // declare marks array
marks = new int[3][5]; // allocate memory for storing 15 elements
Dengan menggabungkan dua di atas kita dapat menulis:
int marks[][] = new int[3][5];
Anda dapat membuat mereka hanya cara lain telah disebutkan. Satu poin lagi untuk menambahkan: Anda bahkan dapat membuat miring array dua dimensi dengan setiap baris, tidak selalu memiliki jumlah yang sama collumns, seperti ini:
int array[][] = new int[3][];
array[0] = new int[3];
array[1] = new int[2];
array[2] = new int[5];
Yang paling umum idiom untuk membuat array dua dimensi dengan 5 baris dan 10 kolom adalah:
int[][] multD = new int[5][10];
sebagai Alternatif, anda bisa menggunakan kode berikut, yang lebih mirip dengan apa yang telah anda, meskipun anda perlu secara eksplisit menginisialisasi setiap baris:
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
Coba:
int[][] multD = new int[5][10];
Perhatikan bahwa dalam kode anda hanya baris pertama dari 2D array diinisialisasi ke 0.
Baris 2 sampai 5 don't bahkan ada. Jika anda mencoba untuk mencetaknya anda'll mendapatkan null
untuk setiap orang dari mereka.
Di Jawa, array dua dimensi dapat dinyatakan sebagai sama dengan array satu dimensi. Dalam array satu dimensi anda dapat menulis seperti
int array[] = new int[5];
di mana int adalah tipe data, array[] adalah array deklarasi, dan array
adalah array dengan benda-benda dengan lima indeks.
Seperti itu, anda dapat menulis sebuah array dua dimensi sebagai berikut.
int array[][];
array = new int[3][4];
Di sini array
adalah int tipe data. Saya pertama kali dideklarasikan pada array satu dimensi tipe tersebut, maka 3 baris dan 4 kolom array dibuat.
Dalam kode anda
int[][] multD = new int[5][];
multD[0] = new int[10];
berarti bahwa anda telah menciptakan sebuah array dua dimensi, dengan lima baris. Di baris pertama ada 10 kolom. Di Jawa anda dapat memilih ukuran kolom untuk setiap baris seperti yang anda inginkan.
int [][] twoDim = new int [5][5];
int a = (twoDim.length);//5
int b = (twoDim[0].length);//5
for(int i = 0; i < a; i++){ // 1 2 3 4 5
for(int j = 0; j <b; j++) { // 1 2 3 4 5
int x = (i+1)*(j+1);
twoDim[i][j] = x;
if (x<10) {
System.out.print(" " + x + " ");
} else {
System.out.print(x + " ");
}
}//end of for J
System.out.println();
}//end of for i
Coba cara ini:
int a[][] = {{1,2}, {3,4}};
int b[] = {1, 2, 3, 4};
Jenis-jenis array yang dikenal sebagai jagged array dalam Java:
int[][] multD = new int[3][];
multD[0] = new int[3];
multD[1] = new int[2];
multD[2] = new int[5];
Dalam skenario ini setiap baris dari array memegang nomor yang berbeda dari kolom. Dalam contoh di atas, baris pertama akan mengadakan tiga kolom, baris kedua akan mengadakan dua kolom, dan baris ketiga memegang lima kolom. Anda dapat menginisialisasi array ini pada waktu kompilasi seperti di bawah ini:
int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}};
Anda dapat dengan mudah beralih semua elemen dalam array:
for (int i = 0; i<multD.length; i++) {
for (int j = 0; j<multD[i].length; j++) {
System.out.print(multD[i][j] + "\t");
}
System.out.println();
}