เมื่อโปรแกรมมีขนาดใหญ่ขึ้นก็ต้องมีตัวแปรมารองรับเพิ่มมากขึ้น และปัญหาที่จะตามมาก็คือการที่จะต้องประกาศตัวแปรมากมาย อีกทั้งการที่จะใส่ค่าให้ตัวแปรนั้นๆดูจะวุ่นวายมากในกรณีที่มีตัวแปรเยอะจะสับสนได้ง่าย โครงสร้างข้อมูลเป็นแนวคิดที่จะลดปัญหานี้นั่นเอง เราสามารถนำตัวแปรประเภทเดียวกันมาจัดหมวดหมู่ให้สะดวกต่อการเรียกใช้ เรามาดูโครงสร้างข้อมูลที่ผมกำลังพูดถึงกันเลยดีกว่าครับ
Array (อารเรย์)
คือ การประกาศตัวแปรสำหรับเก็บข้อมูลชนิดเดียวกันโดยหลายๆตัวแปร สามารถระบุจำนวนของตัวแปรที่ต้องการใช้ได้ ภายในโค้ดเพียงบรรทัดเดียว โดยมีเลขลำดับหรือ ดัชนี(index) เป็นตัวชี้บอกตำแหน่ง ของที่อยู่ของค่านั้นๆ กล่าวสั้นๆคือ ตัวแปรชนิดอารเรย์ จะมีชื่ออ้างอิงเดียวกัน เพียงแต่มีเลขลำดับเป็นตัวบอกถึงตำแหน่งของค่าต่างๆในอารเรย์นั้นๆ
ทำไมผมถึงใช้คำว่าตำแหน่ง เนื่องจากว่าอารเรย์ที่เราพูดถึงนั้นไม่ได้เก็บข้อมูลในแนวเดียวครับ (ให้นึกถึงตารางครับ หรือเมทริกต์ก็ได้ครับ) แนวเดียวกันที่ผมหมายถึงคือข้อมูลที่เรียงเป็นแถวเหมือนตารางแถวเดียวน่ะครับ แต่อารเรย์สามารถเก็บข้อมูลได้ในรูปแบบคล้ายๆกับเมทริกต์(ตาราง)ที่มีสมาชิกเมทริกต์(ตาราง)ภายในเป็นข้อมูล ส่วนในหัวข้อถัดไปจะขอพูดถึงอารเรย์ 1 มิติก่อน จากนั้นจะมาพูดกันถึงอารเรย์หลายมิติครับ

แนวคิดของอารเรย์คือ การสร้างตัวแปรขึ้นมาเก็บข้อมูลชนิดเดียวกันหลายๆค่าในตัวแปรเดียว
อารเรย์ 1 มิติ
รูปแบบการประกาศอารเรย์
(ชนิดของข้อมูลตัวแปรอารเรย์) [] (ชื่อของอารเรย์) ;
ยกตัวอย่างเช่น
int [] myArray ;
นี่คือการประกาศตัวแปรอารเรย์ชื่อ myArray ชนิด integer โดยยังไม่เสร็จครับเพราะโค้ดนี้ยังไม่ได้ระบุจำนวนตัวแปรอารเรย์ที่ต้องการ
การประกาศตัวแปรอารเรย์พร้อมกำหนดจำนวนของตัวแปรอารเรย์
(ชนิดของข้อมูลตัวแปรอารเรย์) [] (ชื่อของอารเรย์) = new (ชนิดของตัวแปรอันแรก)[จำนวนของตัวแปรอารเรย์ที่ต้องการ];
ยกตัวอย่างเช่น
int [] a = new int[7] ;

จากโค้ดด้านบนคือการประกาศตัวแปรอารเรย์ชนิด integer ชื่อ a จำนวน 7 ตัวแปร โดยมีเลขลำดับ (index) เริ่มตั้งแต่ 0-6 ( ตัวแปรอารเรย์มี 7 ตัวก็จริง แต่ลำดับของอารเรย์โดยเริ่มจาก 0 เสมอ)
จากภาพด้านบนเป็นตัวแปรทั้ง 7 ตัวที่เกิดจากการประกาศอารเรย์ออกมา ซึ่งเราจะใช้เลขในช่อง [ ] ในการอ้างอิงถึงตัวแปรนั้นๆเสมอ
รูปแบบการประกาศตัวแปรอารเรย์พร้อมทั้งใส่ค่าเริ่มต้น
int [] countNum = {1,2,3,4,5,6,7,8,9} ;
นี่คือตัวอย่างของการประกาศตัวแปรอารเรย์พร้อมทั้งใส่ค่าลงไป ซึ่งข้อมูลที่ใส่เข้าไปจะจัดเรียงเป็นลำดับโดยเริ่มจาก 0 เรียงจาก ค่า 1 ไปถึง 9 จะได้ดังนี้คือ
countNum[0] มีค่าเท่ากับ 1
countNum[1] มีค่าเท่ากับ 2
countNum[2] มีค่าเท่ากับ 3
...
...
countNum[8] มีค่าเท่ากับ 9
หมายถึงว่าคุณต้องรู้ทันทีว่า index ต่างๆ ของอารเรย์นั้นมีค่าใดอยู่บ้าง เมื่อเราใส่ค่าในลักษณะแบบนี้ จะเห็นได้ว่าง่ายกว่ามากที่เราจะมาประกาศตัวแปรแบบธรรมดาและใส่ค่าหลายๆค่าเข้าไปไม่เพียงเฉพาะชนิด int เท่านั้นนะครับ เป็นข้อมูลชนิดอื่นก็ได้ แต่ถ้าเป็น string ก็ต้องมีเครื่องหมาย " " ครอบข้อความเอาไว้ก็เท่านั้นเองครับ
รูปแบบการประกาศตัวแปรอารเรย์พร้อมทั้งใส่ขนาดของอารเรย์ และใส่ค่าเริ่มต้น
int [] a = new int[5] {1,2,3,4,5} ;
นี่เป็นตัวอย่างการประกาศตัวแปรอารเรย์แบบใส่ขนาด และ ใส่ค่าเริ่มต้นพร้อมกัน โดยผลลัพธ์ที่ได้ เราจะได้อารเรย์ a ที่มีขนาด 5 ตัวแปร และค่าต่างๆ เรียงลำดับจากซ้ายไปขวา ไปใส่ในแต่ละ index ของตัวแปร ตั้งแต่ 0 - 4
a[0] มีค่าเท่ากับ 1
a[1] มีค่าเท่ากับ 2
a[2] มีค่าเท่ากับ 3
a[3] มีค่าเท่ากับ 4
a[4] มีค่าเท่ากับ 5
*** ข้อควรระวัง การประกาศตัวแปรอารเรย์รูปแบบนี้ เมื่อกำหนดขนาดแล้ว ต้องกำหนดค่าให้เท่ากับจำนวนของขนาดที่ประกาศไว้เท่านั้น
ตัวอย่างที่ผิด
int [] b = new int[5] {1,2,3} ;
จะเห็นว่าการประกาศดังโค้ดด้านบนผิดรูปแบบคือ กำหนดจำนวนค่าน้อยกว่าจากที่ประกาศขนาดเอาไว้
int [] b = new int[5] {1,2,3,4,5,6} ;
จะเห็นว่าการประกาศดังโค้ดด้านบนผิดรูปแบบคือ กำหนดจำนวนค่ามากกว่าจากที่ประกาศขนาดเอาไว้
การเข้าถึงข้อมูลในอารเรย์และการใส่ค่าให้ตัวแปรอารเรย์
ในส่วนนี้เราจะเห็นถึงความสะดวกสบายทั้งในการเข้าถึงข้อมูลหรืออ้างอิงข้อมูล และการใส่ค่าให้ตัวแปรอารเรย์ที่มีจำนวนมากๆครับ ผมขอยกตัวอย่างประกอบไปเลยแล้วกัน (สมมติมีการประกาศตัวแปรอารเรย์ชื่อ myArray เอาไว้แล้วจำนวน 9 ตัวแปร) myArray[5] จะเป็นการอ้างอิงถึงข้อมูลในตำแหน่ง index ที่ 5 ของตัวแปรอารเรย์ อาจพูดได้เลยว่าตัวแปรอารเรย์นั้นมีการอ้างอิงและเรียกใช้ที่คล้ายๆกันไม่ต่างกันมากครับ
อารเรย์หลายมิติ
อารเรย์หลายมิติคือการเก็บข้อมูลหรือค่าต่างๆในรูปแบบคล้ายๆกับตารางหรือสมาชิกในเมทริกซ์ครับ (ที่พูดถึงเมทริกซ์เพราะตัวเลขลำดับการอ้างอิงตำแหน่งของค่านั้นเหมือนการบอกมิติในเรื่องของเมทริกซ์เลยครับ) ถ้านึกไม่ออกให้เลื่อนย้อนขึ้นไปดูรูปทางด้านบนครับ ในส่วนของ Array หลายมิติ
รูปแบบการประกาศอารเรย์หลายมิติ
(ชนิดของข้อมูล) [ จำนวนของ , (ลูกน้ำ)เพื่อบอกจำนวนมิติ ] ชื่อของอารเรย์ ;
หรือประกาศจำนวนไปพร้อมกับการประกาศ
(ชนิดของข้อมูล) [ จำนวนของ , (ลูกน้ำ)เพื่อบอกจำนวนมิติ ] ชื่อของอารเรย์ = new (ชนิดข้อมูล)[ จำนวนของ , (เท่ากับด้านหน้า) ] ;
ตัวอย่างของการประกาศอารเรย์หลายมิติ
char [,] myChar = new char[3,3] ;
ผลจากการประกาศอารเรย์รูปแบบนี้จะได้อารเรย์ที่เก็บข้อมูลชนิด character (ตัวอักษร) ขนาด 3x3 หรือ จำนวน 3 แถว 3 หลัก ถ้าไม่เข้าใจให้ดูรูปด้านล่างประกอบครับ
จากการประกาศตัวแปรอารเรย์หลายมิติเราจะนับจำนวนตัวแปรที่ประกาศในรูปแบบนี้ได้จาก จำนวนช่องในแนวตั้งและแนวนอนตามจำนวนที่เราได้ระบุไว้ (ในตัวอย่างนี้มีจำนวนตัวแปร myChar ท้งหมด 9 ตัวแปร)

ขอบคุณมากๆค่ะ พอดีได้เข้ามาอ่านเพราะว่าสนใจทางด้านนี้
ยังไงถ้าพี่ๆมาอะไรก็แนะนำด้วยนะค่ะ
เพราะอนากเรียนวิทยาการคอมมากๆเลยค่ะ

