More Related Content More from Khim Piamprom (7) บทที่ 53. •
การประกาศตัวแปรอาร์เรย์
ใช้คาว่า ARRAY … OF
VAR ชื่อตัวแปร : ARRAY[ค่าแรก..ค่าสุดท้าย]
OF ชนิดข้อมูล;
ตัวอย่าง : การประกาศตัวแปรอาร์เรย์
VAR SName : ARRAY[1..50] OF string[20];
SAge : ARRAY[1..50] OF byte;
SGpa : ARRAY[1..50] OF real;
4. กำรประกำศอำร์เรย์หลำยตัวทำได้ดังนี้
int [] abc , xyz;
abc = new int[500];
xyz = new int[10];
หรือเขียนรวมกันได้ดังนี้
int[] abc = new int [500], xyz = new int[10];
*ข้อควรระวัง
int [] a , b ; a และ b เป็น Array
int a[], b ; a เป็น Array b ไม่เป็น Array
อำร์เรย์หลำยมิติ คือ อำร์เรย์ที่มีสมำชิก
เป็นข้อมูลอำร์เรย์ นั่นคือ ในหน่วยข้อมูล
แต่ละหน่วยของอำร์เรย์ จะเป็นอำร์เรย์
ย่อยๆ ซึ่งอำจจะกำหนดซ้อนลงไปได้
หลำยชั้น
ตัวแปรอาร์เรย์หลายตัว
5. กำรกำหนดค่ำเริ่มต้นให้อำร์เรย์ 1 มิติ สำมำรถประกำศตัว
แปร Array พร้อมกับกำหนดค่ำเริมต้นให้ กับสมำชิก
Array ได้ โดยมีรูปแบบดังนี้
ชนิดของตัวแปรอำร์เรย์ ชื่ออำร์เรย์[จำนวนข้อมูล] = {ค่ำคงที
,ค่ำคงที,…};Type [] var_name =
{value1,value2,value3};เช่นint []num =
{5,6,9};String []name =
{“noom”,”boby”,”goft”};Int []unit = {1}
6. กำรประมวลผลอำร์เรย์
Element ของอำร์เรย์ ลาดับแรกจะเป็น 0 เสมอ ลำดับของ
Element ของอำร์เรย์โดยส่วนมำกจะเป็นค่ำตัวเลขจำนวนเต็ม
ตัวอย่ำงเช่น ใช้อำร์เรย์ scores เรำจะเข้ำถึง Element แรกได้ดังนี้
scores[0]
และถ้ำต้องกำรจะประมวลผล Element ทั้งหมด ก็สำมำรถใช้ลูปเข้ำ
มำช่วยได้ดังตัวอย่ำงด้ำนล่ำงนี้
for (i=0;<9;i++)
scores[i]…;
9. อำร์เรย์ของออบเจ็กต์
อำร์เรย์สำมำรถเก็บ reference ของ Object ได้ โดยกำหนดให้อำเรย์ เป็น Class นั้น ๆ ใน
ตอนประกำศอำเรย์ มีรูปแบบดังนี้
className [] arrayName = new className[size];
เช่น
Student [] studentList = new Student[10];
Student [] studentList = new Student[3];
studentList[0] = new Student();
studentList[1] = new Student();
studentList[2] = new Student();
อาร์เรย์ของออบเจ็กต์
10. อำร์เรย์ 2 มิติ
อำร์เรย์ 2 มิติ เป็นตัวแปรชุดที่มีกำรจัดกำรข้อมูล
Row (แถว) , Column (หลัก) ซึ่งอยู่ใน
รูปแบบตำรำง ที่มีแสดงตำแหน่ง 2 ตัว
อำร์เรย์ 2 มิติ คือ array of array กล่ำวคือ
array 2 มิติ เป็น array ของ array 1 มิติ
นั่นเอง
กำรประกำศตัวแปรอำร์เรย์ 2 มิติ
แบบที่ 1 แบบระบุขนำดไม่กำหนดค่ำเริ่มต้น
data_type array_name[row_size][column_size];
*ตัวอย่ำง*
int score[2][10];
char id[2][10];
**สร้ำงตัวแปรที่มี 2 แถว 10 หลักสำหรับเก็บตัวเลขจำนวนเต็ม
ตัวแปรอาร์เรย์ 2 มิติ
11. กำรกำหนดค่ำเริ่มต้นให้กับอำร์เรย์ 2 มิติ
ตัวอย่ำงรูปแบบที่ 1 int num[2][3] = {11,12,13,21,22,23};
ตัวอย่ำงรูปแบบที่ 2 int num[2][3] = {{11,12,13},{21,22,23}};
ตัวอย่ำงรูปแบบที่ 3 int num[3][3] = {{11,12,13},{21,22,23}};
โดยที่กำรประกำศตัวแปรทั้ง 3 รูปแบบให้ผลลัพธ์เหมือนกัน คือ
การกาหนดค่าเริ่มต้นให้กับอาร์เรย์ 2 มิติ
12. คลาส ArrayList
ArrayList เป็นคลำสที่รวบรวมคำสั่งพิเศษที่ช่วยสั่งงำนอำร์เรย์ ต่ำงจำก array ปกติที่จะเป็น
กำรกำหนดขนำดของตัวแปรอำร์เรย์คงที่ แต่ ArrayList จะสำมำรถแก้ไขขนำดได้ เวลำใส่ข้อมูล
เข้ำไปก็ไม่ต้องกำหนดขนำดเฉพำะไว้ก่อน
***กำรเรียกใช้งำนต้อง import เข้ำมำ
import java.util.ArrayList;
method ที่ใช้ในกำรจัดกำรข้อมูล ดังนี้
1.add(ตำแหน่งอำร์เรย์,ค่ำข้อมุลในอำร์เรย์)
2.remove(ตำแหน่งอำร์เรย์)
3.get(ตำแหน่งอำร์เรย์)
4.indexOf(ข้อมูลอำร์เรย์)
5.ชื่ออำร์เรย์.size()
13. สตริง String หรือ อำร์เรย์ 1 มิติ ชนิดอักขระ
String คือข้อควำม หรือ สำยของอักขระ ใน
ภำษำ C++ ไม่มีตัวแปร ประเภท String แต่จะมีตัวแปร
ประเภท char ให้ใช้แทน ซึ่งตัวแปร ประเภทchar จะ
สำมำรถเก็บอักขระได้ 1 อักขระ เท่ำนั้นถ้ำหำกเรำอยำกให้ตัว
แปร char สำมำรถเก็บข้อควำมได้เรำก็สำมำรถ ทำให้ตัว
แปร char เป็น array ได้ char Name[10];
เรำสำมำรถรวมอักขระแต่ละตัวเข้ำด้วยกันเป็น
สตริง (string) หรือข้อควำม โดยประกำศให้ตัวแปรที่จะ
เก็บสตริงหรือข้อควำมเป็นตัวแปรอำร์เรย์ 1 มิติ ชนิดอักขระ
หมำยถึงประกำศให้ตัวแปร code เป็นอำร์เรย์ 1
มิติขนำด 6 ช่อง แต่ละช่องเก็บข้อมูลประเภท
อักขระ (ตัวอักษร 1 ตัว)
สตริง String
14. โดยใช้ equals( )ซึ่ง เป็น method ตัวนึงที่อยู่ใน
String Class โดยจะทำหน้ำที่เปรียบเทียบ String 2
ชุดว่ำมีสมำชิกหรือข้อควำมที่เหมือนกันหรือไม่ มีรูปแบบ
กำรใช้งำนดังนี้
อธิบำยโปรแกรม จำกโปรแกรมมีกำรกำหนดตัวแปร s1
และ s2 เป็น String โดยมีข้อควำมเหมือนกัน จำกนั้น
กำหนดเงื่อนไขของ if ว่ำให้นำ String ทั้ง 2 มำ
เปรียบเทียบกันว่ำเหมือนกันหรือไม่ โดยใช้เงื่อนไข
s1.equals(s2) ถ้ำมีข้อควำมเหมือนกันจริงก็จะ พิมพ์
ข้อควำม “s1 equals s2” แต่ถ้ำข้อควำมไม่เหมือนกัน
ก็จะพิมพ์ข้อควำม “s1 not equals s2” ออกมำแทน
ให้เรำทดสอบ โดยกำรไปเปลี่ยนข้อควำมในตัวแปร s1 หรือ
s2 แค่เปลี่ยนตัวอักษรตัวเล็กเป็นตัวใหญ่ก็ถือว่ำข้อควำม
ไม่เหมือนกัน
การเปรียบเทียบ String
15. คลำสสตริงบัฟเฟอร์และสตริงบิลเตอร์
เป็น class หนึ่งที่ทำงำนกับ String แต่มีควำมยืดหยุ่นและใช้งำนได้หลำกหลำยกว่ำ String Class
ทั้งนี้StringBuffer Class จะมี Constructor ให้เลือกใช้ได้ 3 Constructor ได้แก่
– StringBuffer() ใช้ในกำรสร้ำง StringBuffer ที่ไม่มีข้อมูลใดๆ และมีควำมยำวสูงสุด 16 ตัวอักษร
– StringBuffer(int length) ใช้ในกำรสร้ำง StringBuffer ที่ไม่มีข้อมูลใดๆ แต่ควำมยำวจะขึ้นอยู่กับค่ำของ
length ที่ส่งมำให้
– StringBuffer(String str) ใช้ในกำรสร้ำง StringBuffer ที่มีข้อมูลตำม Argument “str” ที่ส่งมำ โดย
ควำมยำวก็จะขึ้นอยู่กับควำมยำวของ str เท่ำนั้น
มีคุณสมบัติคล้ำยๆกับ StringBuffer แต่ต่ำงกันตรงที่ StringBuilder ไม่เป็น Thread Save จึงทำให้ทำงำน
ได้เร็วกว่ำ StringBuffer กำรเรียกใช้งำน ก็เรียกใช้งำนได้เหมือนกัน
คลาสสตริงบัฟเฟอร์และสตริงบิลเตอร์