1. อาร์เรย์หยัก

ในฐานะโปรแกรมเมอร์ Java คุณไม่เพียงแต่สลับแถวของอาร์เรย์สองมิติเท่านั้น แต่ยังสร้างอาร์เรย์ตามที่คุณต้องการได้อีกด้วย

สมมติว่าคุณต้องการให้แถวแรกของอาร์เรย์สองมิติมีความยาวเป็น10และคุณต้องการให้แถวที่สองมีความ50ยาว เราจะทำอย่างนั้นได้ไหม? ใช่เราทำได้

ขั้นแรก เราต้องสร้าง 'คอนเทนเนอร์ของคอนเทนเนอร์' — นี่คืออาร์เรย์แรก ซึ่งจะจัดเก็บการอ้างอิงไปยังอาร์เรย์ของแถว นี่คือวิธีการ:

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

คุณเพียงแค่ละเว้นมิติที่สองและเครื่อง Java จะสร้างคอนเทนเนอร์ของคอนเทนเนอร์ นี่คือสิ่งที่จะอยู่ในหน่วยความจำหลังจากรันโค้ดนี้:

อาร์เรย์หยักใน Java

และคุณรู้วิธีสร้างอาร์เรย์หนึ่งมิติแล้ว 🙂

นี่คือลักษณะโค้ดที่ได้จะมีลักษณะดังนี้:

// Matrix of important data
int[][] matrix = new int[2][];
matrix[0] = new int[10];
matrix[1] = new int[50]
อาร์เรย์สองมิติ

แถวที่ 0 คืออาร์เรย์ของ10องค์ประกอบ
แถวแรกคืออาร์เรย์ของ50องค์ประกอบ

เราเพิ่งสร้างสิ่งที่เรียกว่า " อาร์เรย์หยัก "

และถ้าตอนนี้เราต้องการแสดงองค์ประกอบทั้งหมดของอาร์เรย์นี้บนหน้าจอlengthคุณสมบัติของอาร์เรย์ก็จะมีประโยชน์ เพราะท้ายที่สุดแล้ว ความยาวของแถวของอาร์เรย์จะแตกต่างกัน

นอกจากนี้ คุณจะหาความยาวของ 'คอนเทนเนอร์ของคอนเทนเนอร์' ในตัวอย่างของเราได้อย่างไร นอกจากนี้ยังเป็นวัตถุอาร์เรย์ซึ่งหมายความว่ามีความยาว คำตอบที่ถูกต้องคือmatrix.length.

แล้วสำหรับอาร์เรย์ที่ประกอบด้วยแถวของเราล่ะmatrix[0].length



2. การทำงานกับอาร์เรย์สองมิติ

สมมติว่าคุณต้องการแสดงอาร์เรย์สองมิติ คุณทำอย่างนั้นได้อย่างไร?

รหัสของเราจะมีลักษณะดังนี้:

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();
}
สร้างอาร์เรย์
เติมอาร์เรย์ด้วยค่า


Outer loop ที่วนซ้ำแถวของอาร์เรย์
วงในที่วนซ้ำไปซ้ำมาในเซลล์ของแถวเดียว

คุณต้องมีลูปซ้อนกันสองวง คนแรกที่เราเรียกภายนอกและคนที่สอง - ด้านใน

ในวงรอบนอก ( iตัวแปร) เราจะผ่านแถวทั้งหมด (อาร์เรย์) ที่ประกอบกันเป็นอาร์เรย์สองมิติตามลำดับ แต่ละค่าของiสอดคล้องกับแถวที่มีดัชนีนั้น

ในวงใน ( jตัวแปร) เราวนซ้ำเซลล์ทั้งหมดในแถว ต้องขอบคุณวงใน แถวซึ่งประกอบด้วยค่าของอาร์เรย์หนึ่งมิติจะแสดงบนหน้าจอ

นี่คือสิ่งที่จะแสดง:

มีการประมวลผลหนึ่งแถวของอาร์เรย์
1 2 3 4 5 6
มีการประมวลผลอาร์เรย์สองแถว
1 2 3 4 5 6
1 2 3
มีการประมวลผลอาร์เรย์สามแถว
1 2 3 4 5 6
1 2 3
1


3. อาร์เรย์หลายมิติ

อีกหนึ่งข้อเท็จจริงที่น่าสนใจเกี่ยวกับอาร์เรย์ ซึ่งคุณอาจเดาได้อยู่แล้ว หากคุณสร้างอาร์เรย์สองมิติได้ คุณจะสร้างอาร์เรย์สามมิติได้หรือไม่

ได้ คุณสามารถสร้างอาร์เรย์ของมิติใดก็ได้ อาร์เรย์ดังกล่าวเรียกว่า 'หลายมิติ'

เพื่อความสนุก มาสร้างอาร์เรย์หลายมิติที่มี 4 มิติกันเถอะ

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

รหัสนี้ง่ายเกินไปใช่ไหม

ถ้าคุณสร้างด้วยตนเองล่ะ

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
  }
}

และนั่นเป็นเพียงการสร้างอาร์เรย์! จากนั้นคุณต้องทำงานกับมันด้วย

งานโบนัส: เขียนโค้ดที่แสดงค่าทั้งหมดในอาร์เรย์สามมิติ