"Halo, muridku sing paling pinter!"

"Hallo, Riska!"

"Apa sampeyan pengin diskusi anyar babagan array? Inggih, dina iki kita duwe siji kanggo sampeyan! Dina iki aku bakal pitutur marang kowe bab array jagged lan multidimensi."

"Swara ngelak getih lan medeni."

"Aja padha sumelang, programmer nyata tansah bisa nangani array, sanajan untune untune. Lelucon aside, jaggedness array nggambarake kemampuan ora mung kanggo ngganti larik saka array loro-dimensi, nanging uga kanggo mbangun array. nanging kudu.

"Ayo ngomong sampeyan pengin baris pisanan saka array rong dimensi duwe dawa 10, lan kaloro dadi 50."

"Apa sampeyan bisa nindakake iku?"

"Pancen! Pisanan, kita nggawe 'wadhah wadhah' - iki minangka array pisanan, sing bakal nyimpen referensi kanggo larik baris. Iki cara rampung:

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:

"Lan, 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 larik sing disebut " jagged " . Ujunge kasar lan ora duwe aturan baku.

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

"Ngomong-ngomong, sampeyan bisa ngomong carane nemokake dawa saka 'wadhah wadhah' ing conto kita? Iku uga obyek Uploaded, kang tegese wis dawa."

"Mbokmenawa matrix.length?"

"Bener! Lan kanggo susunan sing mbentuk larik, kita bakal nggunakake matrix[0].lengthkanggo baris zeroth."

"Lan kanggo pisanan, tegese kita bakal nggunakake matrix[1].length?"

"Bener. Ing kasus sing sepisanan, eksekusi perintah kasebut bakal ngasilake 10, lan ing kasus kaping pindho, asile bakal dadi 50.

Nggarap array rong dimensi

"Saiki ayo nyoba nampilake array rong dimensi:

int[][] matrix = new int[3][];
matrix[0] = {1, 2, 3, 4, 5, 6};
matrix[1] = {1, 2, 3};
matrix[2] = {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 iterates liwat larik saka larik.
Inner loop sing iterates liwat sel saka baris siji.

"Minangka sampeyan bisa ndeleng, kita kudu loro puteran nested. Kapisan 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 cocog ikaro baris kanthi indeks kasebut.

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

"Iki sing bakal ditampilake:

Siji baris saka array diproses 1 2 3 4 5 6
Loro baris saka array diproses 1 2 3 4 5 6
1 2 3
Telung baris saka array diproses 1 2 3 4 5 6
1 2 3
1

Array multidimensi

"Amigo! Apa sampeyan ngira yen ana susunan rong dimensi, banjur bisa uga ana telung dimensi?

"Aku mung mikir babagan iki, nanging isin takon.

"Ya, sampeyan bisa nggawe array telung dimensi, lan umume, 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];

"Iku ora katon angel banget!"

"Sampeyan durung nyoba nggawe siji 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 iku mung nggawe Uploaded! Banjur sampeyan uga kudu bisa karo piye wae."

"Aku njupuk maneh apa aku ngandika. Iku ora supaya gampang kanggo bisa karo wong-wong mau. Nanging iku bisa."

"Amarga bisa, iki tugas bonus. Tulis kode sing nampilake kabeh nilai ing array telung dimensi. Sampeyan cukup ngerti kanggo nindakake iki. Sing utama yaiku sabar lan ati-ati. Utawa bisa uga akal (ana rahasia). kawruh sing bakal mbantu sampeyan ngrampungake tugas iki ing baris siji). Nanging ora ketompo carane sampeyan ngatasi, ngrampungake."

"Matur nuwun, Rishi. Aku bakal nyoba."