5.1 อาร์เรย์(ต่อ)

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

5.1 อาร์เรย์(ต่อ)

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

อาร์เรย์ 2 มิติ

            อาร์เรย์ธรรมดาก็คล้ายกับบล็อกสำหรับเก็บของ บล็อกนั้นแบ่งออกเป็นช่องสำหรับเก็บของ ส่วนอาร์เรย์ 2 มิติ ก็เปรียบเสมือนตู้ล็อกเกอร์ที่ใช้ในมหาวิทยาลัยหรือตามสนามกีฬาที่มีหลายแถวแต่ละแถวมีหลายช่อง

            การสร้างอาร์เรย์สองมิติ หากประกาศให้ตัวแปรอาร์เรย์เก็บข้อมูลประเภทใดทั้งอาร์เรย์ก็จะเก็บแต่ข้อมูลที่เป็นตัวแปรประเภทนั้น เช่น การสร้างอาร์เรย์ xx ขนาด 2×4(2แถวแนวตั้ง 4แถวแนวนอน) ให้เป็น int ก็ประกาศว่า

int [][]xx = new int[2][4];

หรือจะประกาศอาร์เรย์แบบกำหนดค่าเริ่มต้นก็ทำดังนี้

int [][]xx = {{7, 8, 4, 9},

       {9, 2, 3, 6}};

 

รูป 5-1-1

สำหรับดัชนีของอาร์เรย์สองมิติต้องระบุแถวแนวนอนคู่กับแถวแนวตั้ง เช่น เลข 7 ถูกเก็บอยู่ที่ช่อง xx[0][0] แถวที่ 0 ช่องที่ 0 ส่วน ช่องที่xx[1][2] เก็บค่า 3 เอาไว้ การตรวจสอบดัชนีมีความสำคัญเพราะถ้าเรียกผิดหรือเกินจำนวนช่องจำทำให้เกิด error ในจาวาสามารถใช้ .length เพราะใช้แทนขนาดอาร์เรย์ เช่น xx.length จะเป็นจำนวนของแถวแนวตั้ง ส่วนxx[0].length จะเป็นแถวแนวนอน และเวลาที่เขียนลูปเพื่อรับค่าเข้าหรือแสดงค่าออกของอาร์เรย์สองมิติจะต้องใช้ลูปวน 2 ชั้น

 

รูป 5-1-2

บรรทัดที่ 6 : ประกาศตัวแปร x เป็นอาร์เรย์สองมิติมี 4 แถวแนวตั้ง 5 แถวแนวนอน

บรรทัดที่ 8 : วนลูปชั้นแรกใช้เปลี่ยนแปลงตามแถวแนวตั้ง โดยมีค่าเริ่มต้นที่ 0 วนเท่าขนาดของ x โดยใช้

x.length

บรรทัดที่ 10 : วนลูปชั้นที่สองใช้เปลี่ยนแปลงตามแถวแนวนอน โดยมีค่าเริ่มต้นที่ 0 วนเท่าขนาดของ x[0] โดยใช้x[0].length

บรรทัดที่ 12 : เอาตัวแปรของลูป i และ j มาใส่ในช่องอาร์เรย์ของ x จากนั้นทำการแรนดอมเลขมาใส่

บรรทัดที่ 13 : แสดงค่าอาร์เรย์ออกทางหน้าจอ “\t” เพื่อทำการ tab เลขที่อยู่ติกันให้ห่างกันจะได้เหมือนกับรูป

ของอาร์เรย์

บรรทัดที่ 15 : เมื่อออกจากลูปของแถวแนวนอนในขึ้นบรรทัดใหม่ อาร์เรย์จะได้ไม่เรียงต่อกันเป็นแถวเดียว

ผลลัพธ์ที่ได้

 

รูป 5-1-3

 

คลาสสำหรับอาร์เรย์จาวา

            สิ่งที่ทำกับอาร์เรย์บ่อยๆก็จะมี การค้นหา การเรียงลำดับ การเปลี่ยนอาร์เรย์เป็นสตริง ซึ่งในจาวาก็มีคลาสที่ทำให้ไม่ต้องเขียนโค๊ดพวกนี้เอง ซึ่งอยู่ในคลาส java.util.Arrays ต้อง import มา

            binarySearch(a,x) จะเป็นหารค้นหาว่า x คือคีย์(key)หรือเลขที่เราต้องรู้ว่าอยู่ตรงไหน อยู่ดัชนีไหนในอาร์เรย์ คลาสที่จะค้นด้วยวิธี binary search

 

รูป 5-1-4

บรรทัดที่ 9 : ประกาศอาร์เรย์ที่เรียงลำดับแล้ว

บรรทัดที่ 10 : ใช้ binarySearch เพื่อหาตำแหน่ง ซึ่งจากตัวอย่างจะได้ 2 แต่ถ้าไม่มีลขนั้นอยู่ในอาร์เรย์จะคืนค่าเป็นลบ

            equals(a,b) ใช้ในการตรวจสอบอาร์เรย์แต่ละอาร์เรย์เหมือนกันหรือไม่ ซึ่งข้อมูลจะต้องเหมือนกันทั้งหมดถึงจะได้ค่า true ถ้าไม่เหมือนกันจะได้ค่า false

 

1.     

รูป 5-1-5

            sort(a) เอาสำหรับเรียงรำดับข้อมูลในอาร์เรย์ ส่วน toString(a) ช่วยเปลี่ยนอาร์เรย์ให้แสดงออกในรูปแบบของสตริงหรือข้อความ

 

รูป 5-1-6

ผลลัพธ์ที่ได้

 

รูป 5-1-7

แผนผังการเรียนเขียนโปรแกรม

 

___________________

รับสอนเขียนJAVA , C# , VB.net

โทร 0853507540

___________________

 

ใส่ความเห็น