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} ;
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();
5.7 อาร์เรย์ 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 มิติ
ตัวอย่างรูปแบบที่ 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’
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() ใช้ในกำรสร้ำง StringBuffer ที่ไม่มีข้อมูลใดๆ และมีควำมยำวสูงสุด
16 ตัวอักษร
- StringBuffer(int length) ใช้ในกำรสร้ำง StringBuffer ที่ไม่มีข้อมูลใดๆ แต่
ควำมยำวจะขึ้นอยู่กับค่ำของ length ที่ส่งมำให้
- StringBuffer(String str) ใช้ในกำรสร้ำง StringBuffer ที่มีข้อมูลตำม
Argument “str” ที่ส่งมำ โดยควำมยำวก็จะขึ้นอยู่กับควำมยำวของ str เท่ำนั้น
2.คลำสสตริงบิลเดอร์
มีคุณสมบัติคล้ำยๆกับ StringBuffer แต่ต่ำงกันตรงที่ StringBuilder ไม่เป็น
Thread Save จึงทำให้ทำงำนได้เร็วกว่ำ StringBuffer กำรเรียกใช้งำน ก็เรียกใช้
งำนได้เหมือนกัน
4

4

  • 2.
    array คือกลุ่มของข้อมูลที่เรียงลำดับกัน มีจำนวนแน่นอนซึ่ง ข้อมูลจะเป็นประเภทเดียวกันข้อมูลแต่ละตัวของอำร์เรย์ จะเรียกว่ำ อีลีเมนต์(Element) และข้อมูลแต่ละอีลีเมนต์จะมีหมำยเลขเพื่อ ใช้ในกำรอ้ำงอิงถึงเรียกตัวเลขนี้ ว่ำ เลขดัชนี (Index) จะเป็นตัวแปรที่ชื่อ เหมือนกัน แต่จะแตกต่ำงกันตรงหมำยเลข
  • 3.
    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
  • 4.
    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.
    5.3 กำรกำหนดค่ำเริ่มต้นให้กับอำร์เรย์ 1มิติ สำมำรถกำหนดค่ำเริ่มต้นให้กับ array ได้ตั้งแต่ตอนประกำศตัวแปร ค่ำที่กำหนดต้องอยู่ในเครื่องหมำย { } และถ้ำมีมำกกว่ำ 1 ค่ำ ต้องแยกจำกกันด้วย เครื่องหมำย ,(comma) เช่น int a[5] = {10,20,30,40,50 } ;
  • 6.
    ถ้าในตอนประกาศตัวแปรอาร์เรย์ไม่กาหนดค่าเริ่มต้นให้กับมันแล้ว ค่าที่อยู่ในตัวแปร จะเป็นค่าที่ค้างอยู่ในหน่วยความจาช่วงที่เราจองไว้เป็นอาร์เรย์นั้น ถ้ากาหนดค่าเริ่มต้นตั้งแต่ตอนประกาศตัวแปรแต่กาหนดไม่ครบ ในกรณีที่เป็น อาร์เรย์แบบตัวเลขทั้งจานวนเต็มและจานวนจริงค่าที่เหลือจะถูกกาหนดเป็น 0 โดย อัตโนมัติ เช่น float price[5] = {50.5,2.25,10.0} ;
  • 7.
    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
  • 8.
    5.6 อำร์เรย์ของออบเจ็กต์ อำร์เรย์สำมำรถเก็บ referenceของ Object ได้โดยกำหนดให้อำเรย์เป็น Class นั้นๆ ในตอนประกำศอำเรย์มีรูปแบบดังนี้ className [] arrayName = new className[size];
  • 9.
    เช่น Student [] studentList = new Student[10]; Student [ ] studentList = new Student[3]; studentList[0] = new Student(); studentList[1] = new Student(); studentList[2] = new Student();
  • 10.
    5.7 อาร์เรย์ 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 หลักสำหรับเก็บตัวเลขจำนวนเต็ม
  • 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 มิติขึ้นไป จะไม่ระบุขนาดได้เฉพาะมิติที่ 1 เท่านั้น ส่วนมิติอื่นๆ ต้องมีการระบุขนาดด้วยทุกครั้ง
  • 12.
    5.8 คลำส ArrayList ArrayListเป็นคลำสที่รวบรวมคำสั่งพิเศษที่ช่วยสั่งงำนอำร์เรย์ต่ำงจำก array ปกติที่ จะเป็นกำรกำหนดขนำดของตัวแปรอำร์เรย์คงที่ แต่ ArrayList จะสำมำรถแก้ไขขนำดได้เวลำใส่ ข้อมูลเข้ำไปก็ไม่ต้องกำหนดขนำดเฉพำะไว้ก่อน ***กำรเรียกใช้งำนต้อง import เข้ำมำ import java.util.ArrayList; method ที่ใช้ในกำรจัดกำรข้อมูล ดังนี้ 1.add(ตำแหน่งอำร์เรย์,ค่ำข้อมุลในอำร์เรย์) 2.remove(ตำแหน่งอำร์เรย์) 3.get(ตำแหน่งอำร์เรย์) 4.indexOf(ข้อมูลอำร์เรย์) 5.ชื่ออำร์เรย์.size()
  • 13.
    5.9 สตริง(String) สตริงเป็นออปเจค (Object)ที่สืบทอดคุณสมบัติมำจำกคลำสสตริง (Class String) ถ้ำต้องกำรสร้ำงออปเจคจำกคลำสสตริง ต้องประกำศดังนี้ String str = new String(“Java”); หรือ String str = “Java”; ถ้ำเรำต้องกำรให้ str มีค่ำว่ำงต้องประกำศเช่นนี้ String str = null; กำรเก็บข้อมูลของสตริงนั้น จะมีกำรเก็บข้อมูลอยู่ 2 ส่วน ส่วนแรกจะเป็นข้อมูล ตัวอักษรโดยเก็บเรียงกันไป แบะส่วนที่ 2 จะเก็บจุดสิ้นสุดของสตริงซึ่งจุสิ้นสุดของสตริงจะ ใช้ Null Characterหรือ ‘0’ 5.10 กำรเปรียบเทียบ String โดยใช้ equals( )ซึ่ง เป็น method ตัวนึงที่อยู่ใน String Class โดย จะทำหน้ำที่เปรียบเทียบ String 2 ชุดว่ำมีสมำชิกหรือข้อควำมที่เหมือนกันหรือไม่ มี รูปแบบกำรใช้งำนดังนี้
  • 14.
    อธิบำยโปรแกรม จำกโปรแกรมมีกำรกำหนดตัว แปร s1และ s2 เป็น String โดยมีข้อควำม เหมือนกัน จำกนั้นกำหนดเงื่อนไขของ if ว่ำให้นำ String ทั้ง 2 มำ เปรียบเทียบกันว่ำเหมือนกัน หรือไม่ โดยใช้เงื่อนไข s1.equals(s2) ถ้ำมี ข้อควำมเหมือนกันจริงก็จะ พิมพ์ข้อควำม "s1 equals s2" แต่ถ้ำข้อควำมไม่เหมือนกันก็จะ พิมพ์ข้อควำม "s1 not equals s2" ออกมำ แทน ให้เรำทดสอบ โดยกำรไปเปลี่ยนข้อควำมใน ตัวแปร s1 หรือ s2 แค่เปลี่ยนตัวอักษรตัวเล็ก เป็นตัวใหญ่ก็ถือว่ำข้อควำมไม่เหมือนกัน
  • 15.
    5.11 คลำสสตริงบัฟเฟอร์และสตริงบิลเตอร์ 1.คลำสสตริงบัฟเฟอร์ เป็น classหนึ่งที่ทำงำนกับ String แต่มีควำมยืดหยุ่นและใช้งำนได้หลำกหลำยกว่ำ String Class ทั้งนี้ StringBuffer Class จะมี Constructor ให้เลือกใช้ได้ 3 Constructor ได้แก่ - StringBuffer() ใช้ในกำรสร้ำง StringBuffer ที่ไม่มีข้อมูลใดๆ และมีควำมยำวสูงสุด 16 ตัวอักษร - StringBuffer(int length) ใช้ในกำรสร้ำง StringBuffer ที่ไม่มีข้อมูลใดๆ แต่ ควำมยำวจะขึ้นอยู่กับค่ำของ length ที่ส่งมำให้ - StringBuffer(String str) ใช้ในกำรสร้ำง StringBuffer ที่มีข้อมูลตำม Argument “str” ที่ส่งมำ โดยควำมยำวก็จะขึ้นอยู่กับควำมยำวของ str เท่ำนั้น
  • 16.
    2.คลำสสตริงบิลเดอร์ มีคุณสมบัติคล้ำยๆกับ StringBuffer แต่ต่ำงกันตรงที่StringBuilder ไม่เป็น Thread Save จึงทำให้ทำงำนได้เร็วกว่ำ StringBuffer กำรเรียกใช้งำน ก็เรียกใช้ งำนได้เหมือนกัน