ความหมายของอาร์เรย์
 array คือกลุ่มของข้อมูลที่เรียงลาดับกัน มีจานวนแน่นอนซึ่ง
ข้อมูลจะเป็นประเภทเดียวกัน ข้อมูลแต่ละตัวของอาร์เรย์จะเรียกว่า
อีลีเมนต์(Element) และข้อมูลแต่ละอีลีเมนต์จะมีหมายเลขเพื่อใช้
ในการอ้างอิงถึงเรียกตัวเลขนี้ ว่า เลขดัชนี (Index) จะเป็นตัวแปรที่
ชื่อ เหมือนกัน แต่จะแตกต่างกันตรงหมายเลข
1.array 1 มิติ
 ประเภทตัวแปร ชื่อตัวแปร array[จานวนสมาชิกของ array];
 เช่น
 int Score[4];
 *ในที่นี้มีความหมายว่า เป็นการประกาศตัวแปร array ชื่อ Score มีจานวน 4
รายการ โดยมีรายการที่
 Score[0]
 Score[1]
 Score[2]
 Score[3]
 **รายการของ array จะเริ่มที่ 0 ไม่ได้เริ่มที่ 1**
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
3. การกาหนดค่าเริ่มต้นให้กับอาร์เรย์ 1 มิติ
 สามารถกาหนดค่าเริ่มต้น array ตั้งแต่ตอนประกาศตัวแปร
ค่าที่กาหนดต้องอยู่ในเครื่องหมาย { } และถ้ามีมากกว่า 1 ค่า
ต้องแยกจากกันด้วยเครื่องหมาย ,(comma)
เช่น int a[5] = {10,20,30,40,50 } ;
ถ้าตอนประกาศตัวแปรอาร์เรย์ไม่กาหนดค่าเริ่มต้นค่าที่อยู่ในตัวแปรจะ
เป็นค่าที่ค้างอยู่ในหน่วยความจาช่วงที่เราจองไว้เป็นอาร์เรย์
ถ้ากาหนดค่าเริ่มต้นตั้งแต่ตอนประกาศตัวแปรแต่กาหนดไม่ครบ ในกรณี
ที่เป็นอาร์เรย์แบบตัวเลขทั้งจานวนเต็มและจานวนจริง ค่าที่เหลือจะถูกกาหนด
เป็น 0 โดยอัตโนมัติ
เช่น float price[5] = {50.5,2.25,10.0} ;
**ไม่สามารถประกาศตัวแปรอาร์เรย์โดยไม่ใส่ขนาดของอาร์เรย์ได้ ยกเว้นมีการ
กาหนดค่าเริ่มต้นให้กับมันตั้งแต่แรก
4. การประมวลผลอาร์เรย์
 Element ของอาร์เรย์ ลาดับแรกจะเป็น 0 เสมอ ลาดับของ Element ของ
อาร์เรย์โดยส่วนมากจะเป็นค่าตัวเลขจานวนเต็ม ตัวอย่างเช่น ใช้อาร์เรย์ scores เราจะ
เข้าถึง Element แรกได้ดังนี้
scores[0]
ถ้าต้องการจะประมวลผล Element ทั้งหมด สามารถใช้ลูปเข้ามาช่วยได้ตัวอย่าง
ด้านล่างนี้
for (i=0;<9;i++)
scores[ i]…;
5.อาร์เรย์กับการผ่านค่า
 การส่ง Array เข้าไปใน Method จะเป็นการส่งตาแหน่งของ
Array ( Reference ) เข้าไปให้กับ Parameter ของ
Method
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();
7.อาร์เรย์ 2 มิติ
 อาร์เรย์ 2 มิติ เป็นตัวแปรชุดที่มีการจัดการข้อมูล Row (แถว) ,
Column (หลัก) ซึ่งอยู่ในรูปแบบตาราง ที่มีแสดงตาแหน่ง 2 ตัว
 อาร์เรย์ 2 มิติ คือ array of array กล่าวคือ array 2 มิติ
เป็น array ของ array 1 มิติ นั่นเอง
การประกาศตัวแปรอาร์เรย์ 2 มิติ
ระบุขนาดไม่กาหนดค่าเริ่มต้น
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 รูปแบบผลลัพธ์เหมือนกัน ดังนี้..
8. คลาส ArrayList
 ArrayList เป็นคลาสที่รวบรวมคาสั่งพิเศษที่ช่วยสั่งงานอาร์เรย์ ต่างจาก
array ปกติที่จะเป็นการกาหนดขนาดของตัวแปรอาร์เรย์คงที่ แต่ ArrayList
จะสามารถแก้ไขขนาดได้ เวลาใส่ข้อมูลเข้าไปก็ไม่ต้องกาหนดขนาดเฉพาะไว้ก่อน
 Method ที่ใช้ในการจัดการข้อมูล ดังนี้
 1.add (ตาแหน่งอาร์เรย์,ค่าข้อมุลในอาร์เรย์)
 2.remove (ตาแหน่งอาร์เรย์)
 3.get (ตาแหน่งอาร์เรย์)
 4.indexOf (ข้อมูลอาร์เรย์)
 5.ชื่ออาร์เรย์.size ( )
**การเรียกใช้งานต้อง import เข้ามา
import java.util.ArrayList;
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;
printf("%s%n",three);
}
}
- ผลลัพธ์ที่ได้คือPrinciple programming
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
**แค่เปลี่ยนตัวอักษรตัวเล็กเป็นตัวใหญ่ก็ถือว่าข้อความไม่เหมือนกัน
11. คลาสสตริงบัฟเฟอร์และสตริงบิลเตอร์
 คลาสสตริงบัฟเฟอร์
เป็น class หนึ่งที่ทางานกับ String แต่มีความยืดหยุ่นและใช้งานได้หลากหลาย
กว่า String Class
จะมี Constructor ให้เลือกใช้ได้3 Constructor ได้แก่
- StringBuffer( ) ใช้ในการสร้าง StringBuffer ที่ไม่มีข้อมูลใดๆ และมีความ
ยาวสูงสุด 16 ตัวอักษร
- StringBuffer(int length) ใช้ในการสร้าง StringBuffer ที่ไม่มีข้อมูล
ใดๆ แต่ความยาวจะขึ้นอยู่กับค่าของ length ที่ส่งมาให้
- StringBuffer(String str) ใช้ในการสร้าง StringBuffer ที่มีข้อมูลตาม
Argument “str” ที่ส่งมา โดยความยาวก็จะขึ้นอยู่กับความยาวของ str เท่านั้น

 คลาสสตริงบิลเดอร์
คุณสมบัติคล้ายๆกับ StringBuffer แต่แตกต่างกันตรงที่
StringBuilder ไม่เป็น Thread Save จึงทาให้ทางานได้เร็วกว่า
StringBuffer การเรียกใช้งาน ก็เรียกใช้งานได้เหมือนกัน
1. นายกวิน หลิมย่านกวย เลขที่ 1
2. นายกิตติศักดิ์ จันทวาส เลขที่ 2
3. นายธรรมรัฐ นวลมีชื่อ เลขที่ 3
4. นายนนทวัชร บ่อพลอย เลขที่ 4
5. นายพาคร พรหมวรรณ เลขที่ 5
6. นายขจรยศ พิลาวงษ์ เลขที่ 6
7. นางสาวปทิตตา อินทรโสภา เลขที่ 10
ชั้นมัธยมศึกษาปีที่ 6/1

บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

  • 2.
    ความหมายของอาร์เรย์  array คือกลุ่มของข้อมูลที่เรียงลาดับกันมีจานวนแน่นอนซึ่ง ข้อมูลจะเป็นประเภทเดียวกัน ข้อมูลแต่ละตัวของอาร์เรย์จะเรียกว่า อีลีเมนต์(Element) และข้อมูลแต่ละอีลีเมนต์จะมีหมายเลขเพื่อใช้ ในการอ้างอิงถึงเรียกตัวเลขนี้ ว่า เลขดัชนี (Index) จะเป็นตัวแปรที่ ชื่อ เหมือนกัน แต่จะแตกต่างกันตรงหมายเลข
  • 3.
    1.array 1 มิติ ประเภทตัวแปร ชื่อตัวแปร array[จานวนสมาชิกของ array];  เช่น  int Score[4];  *ในที่นี้มีความหมายว่า เป็นการประกาศตัวแปร array ชื่อ Score มีจานวน 4 รายการ โดยมีรายการที่  Score[0]  Score[1]  Score[2]  Score[3]  **รายการของ array จะเริ่มที่ 0 ไม่ได้เริ่มที่ 1**
  • 4.
    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 } ;
  • 6.
    ถ้าตอนประกาศตัวแปรอาร์เรย์ไม่กาหนดค่าเริ่มต้นค่าที่อยู่ในตัวแปรจะ เป็นค่าที่ค้างอยู่ในหน่วยความจาช่วงที่เราจองไว้เป็นอาร์เรย์ ถ้ากาหนดค่าเริ่มต้นตั้งแต่ตอนประกาศตัวแปรแต่กาหนดไม่ครบ ในกรณี ที่เป็นอาร์เรย์แบบตัวเลขทั้งจานวนเต็มและจานวนจริง ค่าที่เหลือจะถูกกาหนด เป็น0 โดยอัตโนมัติ เช่น float price[5] = {50.5,2.25,10.0} ; **ไม่สามารถประกาศตัวแปรอาร์เรย์โดยไม่ใส่ขนาดของอาร์เรย์ได้ ยกเว้นมีการ กาหนดค่าเริ่มต้นให้กับมันตั้งแต่แรก
  • 7.
    4. การประมวลผลอาร์เรย์  Elementของอาร์เรย์ ลาดับแรกจะเป็น 0 เสมอ ลาดับของ Element ของ อาร์เรย์โดยส่วนมากจะเป็นค่าตัวเลขจานวนเต็ม ตัวอย่างเช่น ใช้อาร์เรย์ scores เราจะ เข้าถึง Element แรกได้ดังนี้ scores[0] ถ้าต้องการจะประมวลผล Element ทั้งหมด สามารถใช้ลูปเข้ามาช่วยได้ตัวอย่าง ด้านล่างนี้ for (i=0;<9;i++) scores[ i]…;
  • 8.
    5.อาร์เรย์กับการผ่านค่า  การส่ง Arrayเข้าไปใน Method จะเป็นการส่งตาแหน่งของ Array ( Reference ) เข้าไปให้กับ Parameter ของ Method
  • 9.
    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();
  • 10.
    7.อาร์เรย์ 2 มิติ อาร์เรย์ 2 มิติ เป็นตัวแปรชุดที่มีการจัดการข้อมูล Row (แถว) , Column (หลัก) ซึ่งอยู่ในรูปแบบตาราง ที่มีแสดงตาแหน่ง 2 ตัว  อาร์เรย์ 2 มิติ คือ array of array กล่าวคือ array 2 มิติ เป็น array ของ array 1 มิติ นั่นเอง
  • 11.
    การประกาศตัวแปรอาร์เรย์ 2 มิติ ระบุขนาดไม่กาหนดค่าเริ่มต้น data_typearray_name[row_size][column_size]; ตัวอย่าง int score[2][10]; char id[2][10]; **สร้างตัวแปรที่มี 2 แถว 10 หลักสาหรับเก็บตัวเลขจานวนเต็ม**
  • 12.
    การกาหนดค่าเริ่มต้นให้กับอาร์เรย์ 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 รูปแบบผลลัพธ์เหมือนกัน ดังนี้..
  • 13.
    8. คลาส ArrayList ArrayList เป็นคลาสที่รวบรวมคาสั่งพิเศษที่ช่วยสั่งงานอาร์เรย์ ต่างจาก array ปกติที่จะเป็นการกาหนดขนาดของตัวแปรอาร์เรย์คงที่ แต่ ArrayList จะสามารถแก้ไขขนาดได้ เวลาใส่ข้อมูลเข้าไปก็ไม่ต้องกาหนดขนาดเฉพาะไว้ก่อน  Method ที่ใช้ในการจัดการข้อมูล ดังนี้  1.add (ตาแหน่งอาร์เรย์,ค่าข้อมุลในอาร์เรย์)  2.remove (ตาแหน่งอาร์เรย์)  3.get (ตาแหน่งอาร์เรย์)  4.indexOf (ข้อมูลอาร์เรย์)  5.ชื่ออาร์เรย์.size ( ) **การเรียกใช้งานต้อง import เข้ามา import java.util.ArrayList;
  • 14.
    9. สตริง(String)  สตริงเป็นobjectที่สืบทอดคุณสมบัติมาจาก Class string ถ้าต้องการสร้างออปเจคจากคลาสสตริง ประกาศดังนี้ String str = new String(“Java”); หรือ String str = “Java”; ถ้าเราต้องการให้str มีค่าว่างต้องประกาศ String str = null;
  • 15.
     การเก็บข้อมูลของสตริงนั้น จะมีการเก็บข้อมูลอยู่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; printf("%s%n",three); } } - ผลลัพธ์ที่ได้คือPrinciple programming
  • 16.
    10.การเปรียบเทียบ String  ใช้equals( )ซึ่งเป็น method ที่อยู่ใน String Class โดยทาหน้าที่เปรียบเทียบ String 2 ชุดว่ามีสมาชิกหรือข้อความที่ เหมือนกันหรือไม่ มีรูปแบบการใช้งานดังนี้
  • 17.
     อธิบายโปรแกรม :จากโปรแกรมมีการกาหนดตัวแปร s1 และ s2 เป็น String โดยข้อความเหมือนกัน จากนั้นกาหนดเงื่อนไขของ if ว่าให้นา String ทั้ง 2 มา เปรียบเทียบ กันว่าเหมือนกันหรือไม่ -โดยใช้เงื่อนไข s1.equals(s2) ถ้ามีข้อความเหมือนกันจริงก็จะ พิมพ์ข้อความ "s1 equals s2“ -แต่ถ้าข้อความไม่เหมือนกันก็จะพิมพ์ข้อความ "s1 not equals s2" ออกมาแทน ให้เราทดสอบ โดยการไปเปลี่ยนข้อความในตัวแปร s1 หรือ s2 **แค่เปลี่ยนตัวอักษรตัวเล็กเป็นตัวใหญ่ก็ถือว่าข้อความไม่เหมือนกัน
  • 18.
    11. คลาสสตริงบัฟเฟอร์และสตริงบิลเตอร์  คลาสสตริงบัฟเฟอร์ เป็นclass หนึ่งที่ทางานกับ String แต่มีความยืดหยุ่นและใช้งานได้หลากหลาย กว่า String Class จะมี Constructor ให้เลือกใช้ได้3 Constructor ได้แก่ - StringBuffer( ) ใช้ในการสร้าง StringBuffer ที่ไม่มีข้อมูลใดๆ และมีความ ยาวสูงสุด 16 ตัวอักษร - StringBuffer(int length) ใช้ในการสร้าง StringBuffer ที่ไม่มีข้อมูล ใดๆ แต่ความยาวจะขึ้นอยู่กับค่าของ length ที่ส่งมาให้ - StringBuffer(String str) ใช้ในการสร้าง StringBuffer ที่มีข้อมูลตาม Argument “str” ที่ส่งมา โดยความยาวก็จะขึ้นอยู่กับความยาวของ str เท่านั้น 
  • 19.
     คลาสสตริงบิลเดอร์ คุณสมบัติคล้ายๆกับ StringBufferแต่แตกต่างกันตรงที่ StringBuilder ไม่เป็น Thread Save จึงทาให้ทางานได้เร็วกว่า StringBuffer การเรียกใช้งาน ก็เรียกใช้งานได้เหมือนกัน
  • 20.
    1. นายกวิน หลิมย่านกวยเลขที่ 1 2. นายกิตติศักดิ์ จันทวาส เลขที่ 2 3. นายธรรมรัฐ นวลมีชื่อ เลขที่ 3 4. นายนนทวัชร บ่อพลอย เลขที่ 4 5. นายพาคร พรหมวรรณ เลขที่ 5 6. นายขจรยศ พิลาวงษ์ เลขที่ 6 7. นางสาวปทิตตา อินทรโสภา เลขที่ 10 ชั้นมัธยมศึกษาปีที่ 6/1