1. อาร์เรย์หยัก
ในฐานะโปรแกรมเมอร์ Java คุณไม่เพียงแต่สลับแถวของอาร์เรย์สองมิติเท่านั้น แต่ยังสร้างอาร์เรย์ตามที่คุณต้องการได้อีกด้วย
สมมติว่าคุณต้องการให้แถวแรกของอาร์เรย์สองมิติมีความยาวเป็น10
และคุณต้องการให้แถวที่สองมีความ50
ยาว เราจะทำอย่างนั้นได้ไหม? ใช่เราทำได้
ขั้นแรก เราต้องสร้าง 'คอนเทนเนอร์ของคอนเทนเนอร์' — นี่คืออาร์เรย์แรก ซึ่งจะจัดเก็บการอ้างอิงไปยังอาร์เรย์ของแถว นี่คือวิธีการ:
int[][] name = new int[height][];
คุณเพียงแค่ละเว้นมิติที่สองและเครื่อง Java จะสร้างคอนเทนเนอร์ของคอนเทนเนอร์ นี่คือสิ่งที่จะอยู่ในหน่วยความจำหลังจากรันโค้ดนี้:
และคุณรู้วิธีสร้างอาร์เรย์หนึ่งมิติแล้ว 🙂
นี่คือลักษณะโค้ดที่ได้จะมีลักษณะดังนี้:
|
อาร์เรย์สองมิติ แถวที่ 0 คืออาร์เรย์ของ 10 องค์ประกอบแถวแรกคืออาร์เรย์ของ 50 องค์ประกอบ |
เราเพิ่งสร้างสิ่งที่เรียกว่า " อาร์เรย์หยัก "
และถ้าตอนนี้เราต้องการแสดงองค์ประกอบทั้งหมดของอาร์เรย์นี้บนหน้าจอlength
คุณสมบัติของอาร์เรย์ก็จะมีประโยชน์ เพราะท้ายที่สุดแล้ว ความยาวของแถวของอาร์เรย์จะแตกต่างกัน
นอกจากนี้ คุณจะหาความยาวของ 'คอนเทนเนอร์ของคอนเทนเนอร์' ในตัวอย่างของเราได้อย่างไร นอกจากนี้ยังเป็นวัตถุอาร์เรย์ซึ่งหมายความว่ามีความยาว คำตอบที่ถูกต้องคือmatrix.length
.
แล้วสำหรับอาร์เรย์ที่ประกอบด้วยแถวของเราล่ะmatrix[0].length
2. การทำงานกับอาร์เรย์สองมิติ
สมมติว่าคุณต้องการแสดงอาร์เรย์สองมิติ คุณทำอย่างนั้นได้อย่างไร?
รหัสของเราจะมีลักษณะดังนี้:
|
สร้างอาร์เรย์ เติมอาร์เรย์ด้วยค่า Outer loop ที่วนซ้ำแถวของอาร์เรย์ วงในที่วนซ้ำไปซ้ำมาในเซลล์ของแถวเดียว |
คุณต้องมีลูปซ้อนกันสองวง คนแรกที่เราเรียกภายนอกและคนที่สอง - ด้านใน
ในวงรอบนอก ( i
ตัวแปร) เราจะผ่านแถวทั้งหมด (อาร์เรย์) ที่ประกอบกันเป็นอาร์เรย์สองมิติตามลำดับ แต่ละค่าของi
สอดคล้องกับแถวที่มีดัชนีนั้น
ในวงใน ( j
ตัวแปร) เราวนซ้ำเซลล์ทั้งหมดในแถว ต้องขอบคุณวงใน แถวซึ่งประกอบด้วยค่าของอาร์เรย์หนึ่งมิติจะแสดงบนหน้าจอ
นี่คือสิ่งที่จะแสดง:
มีการประมวลผลหนึ่งแถวของอาร์เรย์ |
|
มีการประมวลผลอาร์เรย์สองแถว |
|
มีการประมวลผลอาร์เรย์สามแถว |
|
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
}
}
และนั่นเป็นเพียงการสร้างอาร์เรย์! จากนั้นคุณต้องทำงานกับมันด้วย
งานโบนัส: เขียนโค้ดที่แสดงค่าทั้งหมดในอาร์เรย์สามมิติ
GO TO FULL VERSION