1. susunan Jagged

Minangka programmer Jawa sampeyan ora mung bisa ngganti larik saka array loro-dimensi, nanging uga mbangun array nanging pengin.

Ayo dadi ngomong sampeyan pengin baris pisanan Uploaded loro-dimensi duwe dawa 10, lan sampeyan pengin dawa baris kapindho dadi 50. Apa kita bisa nindakake iku? Ya, kita bisa.

Kaping pisanan, kita kudu nggawe 'wadhah wadhah' - iki minangka array pisanan, sing bakal nyimpen referensi kanggo larik baris. Mangkene carane ditindakake:

int[][] name = new int[height][];

Sampeyan mung ngilangi dimensi kapindho , lan mesin Java nggawe wadhah wadhah. Iki sing bakal ana ing memori sawise nglakokake kode iki:

Jagged array ing Jawa

Lan, uga, sampeyan wis ngerti carane nggawe array siji-dimensi 🙂

Iki bakal katon kaya kode asil:

// Matrix of important data
int[][] matrix = new int[2][];
matrix[0] = new int[10];
matrix[1] = new int[50]
Array loro-dimensi

Baris nol minangka susunan 10unsur
Baris pisanan minangka susunan 50unsur

Kita wis nggawe sing disebut " jagged array ".

Lan yen saiki kita pengin nampilake kabeh unsur array iki ing layar, banjur properti array lengthbakal migunani: sawise kabeh, dawa baris array beda-beda.

Ngomong-ngomong, kepiye sampeyan nemokake dawane 'wadhah wadhah' ing conto kita? Iki uga minangka obyek array, sing tegese nduweni dawa. Jawaban sing bener yaiku matrix.length.

Kepiye babagan susunan sing kalebu baris kita?matrix[0].length



2. Nggarap array rong dimensi

Upaminipun sampeyan pengin nampilake array loro-dimensi. Kepiye carane nindakake?

Kode kita bakal katon kaya iki:

int[][] matrix = new int[3][];
matrix[0] = new int[]{1, 2, 3, 4, 5, 6};
matrix[1] = new int[]{1, 2, 3};
matrix[2] = new int[]{1};
for (int i = 0; i < matrix.length; i++) {
   for (int j = 0; j < matrix[i].length; j++)
      System.out.print( matrix[i][j] + " " );
   System.out.println();
}
Nggawe larik
Isi larik karo nilai


Outer loop sing iterator liwat larik saka larik.
Inner loop sing iterates liwat sel saka baris siji.

Sampeyan butuh rong puteran nested. Pisanan kita nelpon njaba , lan kaloro - njero .

Ing daur ulang njaba ( ivariabel), kita kanthi urut ngliwati kabeh baris (array) sing nggawe array rong dimensi. Saben nilai icocog karo baris karo indeks kasebut.

Ing daur ulang batin ( jvariabel), kita ngulang kabeh sel ing baris kasebut. Thanks kanggo daur ulang njero, baris, sing kasusun saka nilai-nilai array siji-dimensi, bakal ditampilake ing layar.

Iki sing bakal ditampilake:

Siji baris array diproses
1 2 3 4 5 6
Rong larik array diproses
1 2 3 4 5 6
1 2 3
Telung larik array diproses
1 2 3 4 5 6
1 2 3
1


3. Susunan multidimensi

Kasunyatan sing luwih menarik babagan array, sing mbokmenawa wis sampeyan duga. Yen sampeyan bisa nggawe array rong dimensi, sampeyan bisa nggawe array telung dimensi?

Ya, sampeyan bisa nggawe array saka ukuran apa wae. Array kasebut diarani 'multidimensional'.

Mung kanggo seneng-seneng, ayo nggawe array multidimensi sing duwe 4 dimensi.

 int[][][][] matrix = new int[2][3][4][5];

Kode iki prasaja banget, ta?

Apa yen sampeyan nggawe kanthi manual?

int[][][][] matrix;
matrix = new int[2][][][];                // Create a 2-element array of references to references to references
for (int i = 0; i < matrix.length; i++)
{
  matrix[i] = new int[3][][];                // Create a 3-element array of references to references
  for (j = 0; j < matrix[i].length; j++)
  {
    matrix[i][j] = new int[4][];             // Create a 4-element array of references
    for (k = 0; k < matrix[i][j].length; k++)
      matrix[i][j][k] = new int[5];          // Create 5-element arrays of integers
  }
}

Lan mung nggawe array! Banjur sampeyan uga kudu bisa karo piye wae.

Tugas bonus: nulis kode sing nampilake kabeh nilai ing array telung dimensi.