View
70
Download
1
Category
Preview:
Citation preview
บทท 5 ขอมลชนดอารเรยและสตรง
ความหมายของอารเรย 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
คณะผจดทำา
Recommended