array คือกลุ่มของข้อมูลที่เรียงลำดับกัน
มีจำนวนแน่นอนซึ่งข้อมูลจะเป็นประเภทเดียวกัน ข้อมูลแต่ละตัวของอาร์เรย์
จะเรียกว่า อีลีเมนต์(Element)
และข้อมูลแต่ละอีลีเมนต์จะมีหมายเลขเพื่อใช้ในการอ้างอิงถึงเรียกตัวเลขนี้
ว่า เลขดัชนี (Index) จะเป็นตัวแปรที่ชื่อ
เหมือนกัน แต่จะแตกต่างกันตรงหมายเลข
5.1 ตัวแปรarray
1 มิติ
การใช้ตัวแปร array
มีรูปแบบดังนี้
ประเภทตัวแปร ชื่อตัวแปรarray[จำนวนสมาชิกของ
array];
เช่น
เช่น
int Score[4];
ในที่นี้มีความหมายว่า
เป็นการประกาศตัวแปร array ชื่อ
Score
มีจำนวน 4 รายการ โดยมีรายการที่
Score[0]
Score[1]
Score[2]
Score[3]
Score[0] Score[1] Score[2] Score[3]
int int
int
int
รายการของ array
จะเริ่มที่ 0 ไม่ได้เริ่มที่ 1
ถ้าเราประกาศตัวแปร array เช่น
int
i[3]
ก็จะมีรายการที่ 0 ถึง 2 จะไม่มีหมายเลข
อินเด็กซ์ 3
5.2ตัวแปรอาร์เรย์หลายตัว
การประกาศอาร์เรย์หลายตัวทำได้ดังนี้
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.3 การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ 1 มิติ
สามารถกำหนดค่าเริ่มต้นให้กับ array ได้ตั้งแต่ตอนประกาศตัวแปร
ค่าที่กำหนดต้องอยู่ในเครื่องหมาย { } และถ้ามีมากกว่า 1 ค่า ต้องแยกจากกันด้วยเครื่องหมาย ,(comma)
เช่น int a[5] = {10,20,30,40,50 } ;
ถ้าในตอนประกาศตัวแปรอาร์เรย์ไม่กำหนดค่าเริ่มต้นให้กับมันแล้ว ค่าที่อยู่ในตัวแปรจะเป็นค่าที่ค้างอยู่ในหน่วยความจำช่วงที่เราจองไว้เป็นอาร์เรย์นั้น
ถ้ากำหนดค่าเริ่มต้นตั้งแต่ตอนประกาศตัวแปรแต่กำหนดไม่ครบ ในกรณีที่เป็นอาร์เรย์แบบตัวเลขทั้งจำนวนเต็มและจำนวนจริง ค่าที่เหลือจะถูกกำหนดเป็น 0 โดยอัตโนมัติ
เช่น float price[5] = {50.5,2.25,10.0} ;
บางครั้งถ้ากำหนดค่าเริ่มต้นให้แก่อาร์เรย์เลย เราไม่จำเป็นต้องใส่ขนาดของอาร์เรย์ก็ได้
เช่น float a[ ] = {1,2,3,4,5} ;
ความหมายคือ เป็นการกำหนดตัวแปรอาร์เรย์ของจำนวนจริงแบบ float ขนาด 5 ช่อง
***เราไม่สามารถประกาศตัวแปรอาร์เรย์โดยไม่ใส่ขนาดของอาร์เรย์ได้ ยกเว้นมีการกำหนดค่าเริ่มต้นให้กับมันตั้งแต่แรก
5.4 การประมวลผลอาร์เรย์
Element ของอาร์เรย์ ลำดับแรกจะเป็น 0 เสมอ ลำดับของ Element ของอาร์เรย์โดยส่วนมากจะเป็นค่าตัวเลขจำนวนเต็ม ตัวอย่างเช่น ใช้อาร์เรย์ scores เราจะเข้าถึง Element แรกได้ดังนี้
scores[0]
และถ้าต้องการจะประมวลผล Element ทั้งหมด ก็สามารถใช้ลูปเข้ามาช่วยได้ดังตัวอย่างด้านล่างนี้
for (i=0;<9;i++)
scores[i]…
5.5 อาร์เรย์กับการผ่านค่า
การส่ง Array เข้าไปใน Method จะเป็นการส่งตำแหน่งของ Array ( Reference ) เข้าไปให้กับ Parameter ของ Method

5.6 อาร์เรย์ของออบเจ็กต์
อาร์เรย์สามารถเก็บ 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();

การประกาศตัวแปรอาร์เรย์ 2 มิติ
• แบบที่ 1 แบบระบุขนาดไม่กำหนดค่าเริ่มต้น
data_type array_name[row_size][column_size];
• ตัวอย่าง
int score[2][10];
char id[2][10];
**สร้างตัวแปรที่มี 2 แถว 10 หลักสำหรับเก็บตัวเลขจำนวนเต็ม
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ 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 มิติขึ้นไป จะไม่ระบุขนาดได้เฉพาะมิติที่ 1 เท่านั้น ส่วนมิติอื่นๆ ต้องมีการระบุขนาดด้วยทุกครั้ง
5.8 คลาส ArrayList
ArrayList เป็นคลาสที่รวบรวมคำสั่งพิเศษที่ช่วยสั่งงานอาร์เรย์ ต่างจาก array ปกติที่จะเป็นการกำหนดขนาดของตัวแปรอาร์เรย์คงที่ แต่ ArrayList จะสามารถแก้ไขขนาดได้ เวลาใส่ข้อมูลเข้าไปก็ไม่ต้องกำหนดขนาดเฉพาะไว้ก่อน
***การเรียกใช้งานต้อง import เข้ามา
import java.util.ArrayList;
method ที่ใช้ในการจัดการข้อมูล ดังนี้
1.add(ตำแหน่งอาร์เรย์,ค่าข้อมุลในอาร์เรย์)
2.remove(ตำแหน่งอาร์เรย์)
3.get(ตำแหน่งอาร์เรย์)
4.indexOf(ข้อมูลอาร์เรย์)
5.ชื่ออาร์เรย์.size()
5.9 สตริง(String)
สตริงเป็นออปเจค (Object) ที่สืบทอดคุณสมบัติมาจากคลาสสตริง (Class String) ถ้าต้องการสร้างออปเจคจากคลาสสตริง ต้องประกาศดังนี้
String str = new String(“Java”);
หรือ String str = “Java”;
ถ้าเราต้องการให้ str มีค่าว่างต้องประกาศเช่นนี้ String str = null;
การเก็บข้อมูลของสตริงนั้น จะมีการเก็บข้อมูลอยู่ 2 ส่วน ส่วนแรกจะเป็นข้อมูลตัวอักษรโดยเก็บเรียงกันไป แบะส่วนที่ 2 จะเก็บจุดสิ้นสุดของสตริง ซึ่งจุสิ้นสุดของสตริงจะใช้ Null Characterหรือ ‘\0’
**ตัวอย่าง
class string2 {
public static void main (String[] args) {
String one = "Principle ";
String two = "programming";
String three = null;
three = one + two;
System.out.printf("%s%n",three);
}
}
** ผลลัพธ์ที่ได้คือPrinciple programming
5.10 การเปรียบเทียบ String
โดยใช้ equals( )ซึ่ง เป็น method ตัวนึงที่อยู่ใน String Class โดยจะทำหน้าที่เปรียบเทียบ String 2 ชุดว่ามีสมาชิกหรือข้อความที่เหมือนกันหรือไม่ มีรูปแบบการใช้งานดังนี้

อธิบายโปรแกรม จากโปรแกรมมีการกำหนดตัวแปร s1 และ s2 เป็น String โดยมีข้อความเหมือนกัน จากนั้นกำหนดเงื่อนไขของ if ว่าให้นำ String ทั้ง 2 มา เปรียบเทียบกันว่าเหมือนกันหรือไม่ โดยใช้เงื่อนไข s1.equals(s2) ถ้ามีข้อความเหมือนกันจริงก็จะ พิมพ์ข้อความ "s1 equals s2" แต่ถ้าข้อความไม่เหมือนกันก็จะพิมพ์ข้อความ "s1 not equals s2" ออกมาแทน ให้เราทดสอบ โดยการไปเปลี่ยนข้อความในตัวแปร s1 หรือ s2 แค่เปลี่ยนตัวอักษรตัวเล็กเป็นตัวใหญ่ก็ถือว่าข้อความไม่เหมือนกัน
5.11 คลาสสตริงบัฟเฟอร์และสตริงบิลเตอร์
1.คลาสสตริงบัฟเฟอร์
เป็น class หนึ่งที่ทำงานกับ String แต่มีความยืดหยุ่นและใช้งานได้หลากหลายกว่า String Class
ทั้งนี้ StringBuffer Class จะมี Constructor ให้เลือกใช้ได้ 3 Constructor ได้แก่
ทั้งนี้ StringBuffer Class จะมี Constructor ให้เลือกใช้ได้ 3 Constructor ได้แก่
- StringBuffer() ใช้ในการสร้าง StringBuffer ที่ไม่มีข้อมูลใดๆ และมีความยาวสูงสุด 16 ตัวอักษร
- StringBuffer(int length) ใช้ในการสร้าง StringBuffer ที่ไม่มีข้อมูลใดๆ แต่ความยาวจะขึ้นอยู่กับค่าของ length ที่ส่งมาให้
- StringBuffer(String str) ใช้ในการสร้าง StringBuffer ที่มีข้อมูลตาม Argument “str” ที่ส่งมา โดยความยาวก็จะขึ้นอยู่กับความยาวของ str เท่านั้น
2.คลาสสตริงบิลเดอร์
มีคุณสมบัติคล้ายๆกับ StringBuffer แต่ต่างกันตรงที่ StringBuilder ไม่เป็น Thread Save จึงทำให้ทำงานได้เร็วกว่า StringBuffer การเรียกใช้งาน ก็เรียกใช้งานได้เหมือนกัน



ไม่มีความคิดเห็น:
แสดงความคิดเห็น