20
บบบบบ 5 บบบบบบ บบบบบบบบบบบบ บบบบบบบบ

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

Embed Size (px)

Citation preview

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

บทท 5 ขอมลชนดอารเรยและสตรง

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

ความหมายของอารเรย array คอกลมของขอมลทเรยงลำาดบ

กน มจำานวนแนนอนซงขอมลจะเปนประเภท เดยวกน ขอมลแตละตวของอารเรยจะเรยกวา

 อลเมนต(Element) และขอมลแตละอลเมนตจะมหมายเลขเพอใชในการอางองถง

 เรยกตวเลขน วา เลขดชน (Index) จะเปน ตวแปรทชอ เหมอนกน แตจะแตกตางกนตรง

หมายเลข

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

1. array 1 มต ประเภทตวแปร ชอตวแปร array[ จำานวนสมาชกของarray];

เชน int Score[4]; * ในทนมความหมายวา เปนการประกาศตวแปร array

ชอ Score มจำานวน 4 รายการ โดยมรายการท Score[0] Score[1]  Score[2]  Score[3] ** รายการของ array จะเรมท 0 ไมไดเรมท 1**

Page 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

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

3. การกำาหนดคาเรมตนใหกบอารเรย1 มต   สามารถกำาหนดคาเรมตน array ตงแตตอนประกาศตวแปร

คาทกำาหนดตองอยใน เครองหมาย { } และถาม มากกวา 1 คา

ตองแยกจากกนดวยเครองหมาย ,(comma) เชน int   a[5]  = {10,20,30,40,50 } ;

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

ถาตอนประกาศตวแปรอารเรยไมกำาหนดคาเรมตนคาทอยในตวแปรจะเปนคาทคางอยในหนวยความจำาชวงทเราจองไวเปนอารเรย ถากำาหนดคาเรมตนตงแตตอนประกาศตวแปรแตกำาหนด

ไมครบ ในกรณทเปนอารเรยแบบตวเลขทงจำานวนเตมและจำานวนจรง คาทเหลอจะถกกำาหนดเปน 0 โดยอตโนมต

 เชน float price[5] = {50.5,2.25,10.0} ;

**ไมสามารถประกาศตวแปรอารเรยโดยไมใสขนาดของ อารเรยได ยกเวนมการกำาหนดคาเรมตนใหกบมนตงแตแรก

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

4. การประมวลผลอารเรย Element  ของอารเรย ลำาดบแรกจะเปน 0 เสมอ ลำาดบของ

Element ของอารเรยโดยสวนมากจะเปนคาตวเลขจำานวนเตม ตวอยางเชน ใชอารเรย scores เราจะเขาถง Element แรกไดดงน

scores[0]

ถาตองการจะประมวลผล Element ทงหมด สามารถใชลปเขามาชวยไดตวอยางดานลางน

for (i=0;<9;i++)scores[ i]…;

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

5.อารเรยกบการผานคา การสง Array เขาไปใน Method จะเปนการ

สงตำาแหนงของ Array ( Reference ) เขาไป ใหกบ Parameter ของ Method

Page 9: บทที่ 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();

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

7. อารเรย 2 มต อารเรย 2 มต เปนตวแปรชดทมการจดการ

ขอมล Row (แถว) , Column (หลก) ซงอยใน รปแบบตาราง ทมแสดงตำาแหนง 2 ตว

อารเรย 2 มต คอ array of array กลาวคอarray 2  มต เปน array ของ array 1 มตนนเอง

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

การประกาศตวแปรอารเรย 2 มต ระบขนาดไมกำาหนดคาเรมตนdata_type array_name[row_size]

[column_size]; ตวอยางint score[2][10];char id[2][10];** สรางตวแปรทม 2 แถว 10 หลกสำาหรบเกบตวเลขจำานวนเตม**

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

การกำาหนดคาเรมตนใหกบอารเรย 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 รปแบบผลลพธเหมอนกนดงน..

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

8. คลาส ArrayList ArrayList เปนคลาสทรวบรวมคำาสงพเศษ ทชวยสงงานอารเรย

ตางจาก array ปกตทจะเปนการกำาหนดขนาดของตวแปรอารเรย คงท แต ArrayList จะสามารถแกไขขนาดได เวลาใสขอมลเขาไปกไม

ตองกำาหนดขนาดเฉพาะไวกอน Method  ทใชในการจดการขอมล ดงน 1.add (ตำาแหนงอารเรย,คาขอมลในอารเรย) 2.remove (ตำาแหนงอารเรย) 3.get (ตำาแหนงอารเรย) 4.indexOf (ขอมลอารเรย) 5.ชออารเรย.size ( ) ** การเรยกใชงานตอง import เขามา import java.util.ArrayList;

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

9. สตรง(String)

สตรงเปนobject ทสบทอดคณสมบตมาจากClass string

ถาตองการสรางออปเจคจากคลาสสตรง ประกาศดงน

String str = new String(“Java”);  หรอ String str = “Java”; ถาเราตองการให str มคาวาง ตองประกาศ

 String str = null;

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

  การเกบขอมลของสตรงนน จะมการเกบขอมล อย 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

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

10. การเปรยบเทยบ String   ใช equals( ) ซงเปน method ทอยใน

String Class โดยทำาหนาทเปรยบเทยบString 2 ชดวามสมาชกหรอขอความทเหมอน

กนหรอไม มรปแบบการใชงานดงน

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

อธบายโปรแกรม : จากโปรแกรมมการกำาหนดตวแปร s1 และ s2 เปน String โดยขอความเหมอนกน

จากนนกำาหนดเงอนไขของ if วาใหนำา String ทง 2 มา เปรยบเทยบกนวาเหมอนกนหรอไม

- โดยใชเงอนไข s1.equals(s2) ถามขอความเหมอนกนจรง กจะ พมพขอความ "s1 equals s2“

-แตถาขอความไมเหมอนกน กจะพมพขอความ "s1 not equals s2" ออกมาแทน ใหเราทดสอบ โดยการไป

เปลยนขอความในตวแปร s1 หรอ s2  **แคเปลยนตวอกษรตวเลกเปนตวใหญกถอวาขอความไม

 เหมอนกน

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

11. คลาสสตรงบฟเฟอรและสตรงบลเตอร คลาสสตรงบฟเฟอร        เปน class หนงททำางานกบ String แตมความยดหยนและใช

งานไดหลากหลายกวา String Class  จะม Constructor ใหเลอกใชได 3 Constructor ไดแก

- StringBuffer( ) ใชในการสราง StringBuffer ทไมมขอมล ใดๆ และม ความยาวสงสด 16 ตวอกษร

- StringBuffer(int length) ใชในการสราง StringBuffer ทไมมขอมล ใดๆ แตความยาวจะขนอยกบคาของ length ทสงมาให

- StringBuffer(String str) ใชในการสราง StringBuffer ทม ขอมลตาม Argument “str” ทสงมา โดยความยาวกจะขนอย

กบความยาวของ str เทานน

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

 คลาสสตรงบลเดอร          คณสมบตคลายๆกบ StringBuffer แต

แตกตางกนตรงท StringBuilder ไมเปนThread Save จงทำาใหทำางานไดเรวกวาStringBuffer การเรยกใชงาน กเรยกใชงานไดเหมอนกน

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

1.                 นายกวน หลมยานกวย เลขท 1       2.                  นายกตตศกด จนทวาส เลขท 2       3.                   นายธรรมรฐ นวลมชอ เลขท 3       4.                 นายนนทวชร บอพลอย เลขท 4       5.                 นายพาคร พรหมวรรณ เลขท 5       6.                    นายขจรยศ พลาวงษ เลขท 6       7.        นางสาวปทตตา อนทรโสภา

เลขท 10     ชนมธยมศกษาปท 6/1

คณะผจดทำา