1. อาร์เรย์หนึ่งมิติ
1.1 คำจำกัดความของอาร์เรย์หนึ่งมิติ
ประเภท arrayName[];ประเภท[] arrayName;
ประเภท (ประเภท) สามารถเป็นประเภทข้อมูลใดก็ได้ใน Java รวมถึงประเภทการรวมประเภทอย่างง่าย ชื่ออาร์เรย์ arrayName เป็นตัวระบุทางกฎหมาย และ [] ระบุว่าตัวแปรเป็นตัวแปรประเภทอาร์เรย์
อีกรูปแบบหนึ่งอาจจะแปลกมากสำหรับนักพัฒนา C++ แต่สำหรับภาษาการพัฒนา เช่น JAVA หรือ C# อีกรูปแบบหนึ่งอาจจะใช้งานง่ายกว่า เพราะสิ่งที่กำหนดไว้ที่นี่เป็นเพียงตัวแปร และระบบไม่ได้สร้างอินสแตนซ์ให้ คุณจำเป็นต้องระบุประเภทของตัวแปรเท่านั้น และไม่จำเป็นต้องระบุขนาดอาร์เรย์ใน [] (รูปแบบแรกเป็นเพียงเพื่อให้เข้ากับนิสัยในอดีตได้หรือไม่ เพราะอิทธิพลของภาษา C นั้นยิ่งใหญ่เกินไปใช่ไหม)
ตัวอย่างเช่น:
int intArray[]; ประกาศอาร์เรย์จำนวนเต็ม และแต่ละองค์ประกอบในอาร์เรย์เป็นข้อมูลจำนวนเต็ม ต่างจาก C และ C++ ตรงที่ Java ไม่ได้จัดสรรหน่วยความจำสำหรับองค์ประกอบอาร์เรย์ในคำจำกัดความของอาร์เรย์ ดังนั้น [] จึงไม่จำเป็นต้องระบุจำนวนองค์ประกอบในอาร์เรย์ ซึ่งก็คือความยาวของอาร์เรย์ และคุณไม่สามารถถามได้ อะไรก็ตามเกี่ยวกับอาร์เรย์ที่กำหนดไว้ข้างต้น เราต้องจัดสรรพื้นที่หน่วยความจำให้กับมัน ในเวลานี้ เราจำเป็นต้องใช้ตัวดำเนินการ new รูปแบบจะเป็นดังนี้: arrayName=new type[arraySize]; ตัวอย่างเช่น: intArray=new int[3];
จัดสรรพื้นที่หน่วยความจำที่ถูกครอบครองโดยจำนวนเต็มชนิด int 3 ตัวสำหรับอาร์เรย์จำนวนเต็ม
โดยปกติแล้ว ทั้งสองส่วนนี้สามารถนำมารวมกันได้ โดยมีรูปแบบดังต่อไปนี้:
ประเภท arrayName=ประเภทใหม่[arraySize]; ตัวอย่างเช่น: int intArray=new int[3];
1.2 การอ้างอิงถึงองค์ประกอบอาร์เรย์หนึ่งมิติ
หลังจากกำหนดอาร์เรย์และจัดสรรพื้นที่หน่วยความจำโดยใช้ตัวดำเนินการใหม่แล้ว คุณสามารถอ้างอิงแต่ละองค์ประกอบในอาร์เรย์ได้ องค์ประกอบอาร์เรย์มีการอ้างอิงดังนี้:
ชื่ออาร์เรย์[ดัชนี]
ในหมู่พวกเขาดัชนีคือตัวห้อยอาร์เรย์ซึ่งอาจเป็นค่าคงที่จำนวนเต็มหรือนิพจน์ เช่น a[3], b[i] (i เป็นจำนวนเต็ม), c[6*I] เป็นต้น ตัวห้อยเริ่มต้นจาก 0 และไปจนถึงความยาวของอาร์เรย์ลบ 1 สำหรับตัวเลข in-tArray ในตัวอย่างข้างต้น จะมีองค์ประกอบ 3 ส่วน ได้แก่
intArray[0], intArray[1], intArray[2] หมายเหตุ: ไม่มี intArray[3]
นอกจากนี้ ไม่เหมือนกับ C และ C++ ตรงที่ Java ต้องการการตรวจสอบนอกขอบเขตเกี่ยวกับองค์ประกอบอาเรย์เพื่อความปลอดภัย ในเวลาเดียวกัน แต่ละอาร์เรย์มีความยาวแอตทริบิวต์ที่ระบุความยาว ตัวอย่างเช่น intArray.length ระบุความยาวของอาร์เรย์ intArray
ArrayTest คลาสสาธารณะ { โมฆะสาธารณะหลัก (String args []) { int i; int a [] = new int [5]; for (i = 0; i <5; i ++) a [i] = i; i=a.length-1;i>=0;i--) System.out.println("a["+i+"]="+a[i]);
ผลการดำเนินการมีดังนี้:
C:/>จาวาอาร์เรย์Testa[4]=4a[3]=3a[2]=2a[1]=1a[0]=0
โปรแกรมนี้กำหนดค่าให้กับแต่ละองค์ประกอบในอาเรย์และส่งเอาต์พุตในลำดับย้อนกลับ
1.3 การเริ่มต้นอาร์เรย์หนึ่งมิติ
องค์ประกอบอาร์เรย์สามารถกำหนดค่าได้ตามตัวอย่างข้างต้น นอกจากนี้ยังสามารถเริ่มต้นได้ในเวลาเดียวกันกับที่อาร์เรย์ถูกกำหนดไว้
ตัวอย่างเช่น:
int[]={1, 2, 3, 4, 5};
แยกแต่ละองค์ประกอบของอาร์เรย์ด้วยเครื่องหมายจุลภาค (,) และระบบจะจัดสรรพื้นที่จำนวนหนึ่งสำหรับอาร์เรย์
แตกต่างจาก C ตรงที่ Java ไม่ต้องการให้อาร์เรย์เป็นแบบคงที่ในขณะนี้ จริงๆ แล้วตัวแปรที่นี่คล้ายกับพอยน์เตอร์ในภาษา C ดังนั้นจึงยังคงใช้ได้เพื่อใช้เป็นค่าส่งคืนสำหรับฟังก์ชันอื่นๆ ใน C ตัวแปรท้องถิ่น การกลับมาใช้ฟังก์ชันการโทรเพื่อใช้งานต่อถือเป็นข้อผิดพลาดที่ง่ายมากสำหรับผู้ที่เพิ่งเรียนรู้
2. อาร์เรย์หลายมิติ
เช่นเดียวกับ C และ C++ อาร์เรย์หลายมิติใน Java ถือเป็นอาร์เรย์ของอาร์เรย์ ตัวอย่างเช่น อาร์เรย์สองมิติเป็นอาร์เรย์หนึ่งมิติพิเศษ และแต่ละองค์ประกอบเป็นอาร์เรย์หนึ่งมิติ ด้านล่างนี้เราใช้ตัวเลขสองมิติเป็นหลักในการอธิบาย สถานการณ์ในมิติสูงจะคล้ายกัน
2.1 คำจำกัดความของอาเรย์สองมิติ
อาร์เรย์สองมิติถูกกำหนดเป็น:
พิมพ์ arrayName[][];
ตัวอย่างเช่น:
int intArray[];
เช่นเดียวกับอาร์เรย์หนึ่งมิติ ไม่มีการจัดสรรพื้นที่หน่วยความจำสำหรับองค์ประกอบอาร์เรย์ในขณะนี้ ต้องใช้ตัวดำเนินการใหม่เพื่อจัดสรรหน่วยความจำก่อนจึงจะสามารถเข้าถึงแต่ละองค์ประกอบได้
สำหรับอาร์เรย์มิติสูง มีหลายวิธีในการจัดสรรพื้นที่หน่วยความจำ:
1. จัดสรรพื้นที่แต่ละมิติโดยตรง เช่น
int a[][]=ใหม่ int[2][3];
2. เริ่มจากมิติสูงสุด จัดสรรพื้นที่สำหรับแต่ละมิติ เช่น
int a[][]=ใหม่ int[2][];a[0]=ใหม่ int[3];a[1]=ใหม่ int[3];
ทำหน้าที่เดียวกันกับข้อ 1 ให้สมบูรณ์ ซึ่งแตกต่างจาก C และ C++ ซึ่งต้องระบุความยาวของแต่ละมิติเพียงครั้งเดียว
2.2 การอ้างอิงถึงองค์ประกอบอาร์เรย์สองมิติ
สำหรับแต่ละองค์ประกอบในอาร์เรย์สองมิติ วิธีการอ้างอิงคือ: arrayName[index1][index2] โดยที่ index1 และ index2 เป็นตัวห้อย ซึ่งสามารถเป็นค่าคงที่จำนวนเต็มหรือนิพจน์ เช่น a[2][3] เป็นต้น เหมือนกัน ตัวห้อยหนึ่งมิติแต่ละตัวเริ่มต้นจาก 0
2.3 การเริ่มต้นอาร์เรย์สองมิติ
มีสองวิธี:
1. กำหนดค่าให้กับแต่ละองค์ประกอบโดยตรง
2. เตรียมใช้งานอาร์เรย์พร้อมกับที่กำหนดไว้
ตัวอย่างเช่น: int a[][]={{2, 3}, {1, 5}, {3, 4}};
กำหนดอาร์เรย์ 3×2 และกำหนดค่าให้กับแต่ละองค์ประกอบ