24
ข้อมูลชนิดอาร์เรย์และสตริง

กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

Embed Size (px)

Citation preview

Page 1: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

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

Page 2: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

สมาชก

นาย ครองพล ปจมนตร เลขท 8

นาย พทยตม วรรณะ เลขท 10

นาย วชญพล กาญจนก าเนด เลขท 11

นางสาว คณญญา หนนภกด เลขท 27

นางสาว ณชชา นาเวช เลขท 28

นางสาว ณฐนนท ภญโญ เลขท 29

มธยมศกษาปท 6/3

Page 3: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

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

array คอกลมของขอมลทเรยงล าดบกน มจ านวนแนนอน

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

เรยกวา อลเมนต(Element) และขอมลแตละอลเมนตจะมหมายเลข

เพอใชในการอางองถงเรยกตวเลขน วา เลขดชน (Index) จะเปนตว

แปรทชอ เหมอนกน แตจะแตกตางกนตรงหมายเลข

Page 4: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

ตวแปร Array 1 มต

การใชตวแปร array มรปแบบดงน

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

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

ตวแปร Array 1 มต

เชน

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

Page 6: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

ตวแปรอารเรยหลายตว

การประกาศอารเรยหลายตวท าไดดงน

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 7: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การก าหนดคาเรมตนใหกบอารเรย 1 มต

สามารถก าหนดคาเรมตนใหกบ array ไดตงแตตอนประกาศตวแปร

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

จากกนดวยเครองหมาย ,(comma)

เชน int a[5] = {10,20,30,40,50 } ;

Page 8: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การก าหนดคาเรมตนใหกบอารเรย 1 มต

ถาในตอนประกาศตวแปรอารเรยไมก าหนดคาเรมตนใหกบมนแลว คาทอยใน

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

ถาก าหนดคาเรมตนตงแตตอนประกาศตวแปรแตก าหนดไมครบ ในกรณท

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

โดยอตโนมต

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

Page 9: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การก าหนดคาเรมตนใหกบอารเรย 1 มต

บางครงถาก าหนดคาเรมตนใหแกอารเรยเลย เราไมจ าเปนตองใสขนาด

ของอารเรยกได เชน float a[ ] = {1,2,3,4,5} ;

ความหมายคอ เปนการก าหนดตวแปรอารเรยของจ านวนจรงแบบ float ขนาด 5

ชอง

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

การก าหนดคาเรมตนใหกบมนตงแตแรก

Page 10: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การประมวลผลอารเรย

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

ของ Element ของอารเรยโดยสวนมากจะเปนคาตวเลขจ านวนเตม

ตวอยางเชน ใชอารเรย scores เราจะเขาถง Element แรกไดดงน

scores[0]

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

มาชวยไดดงตวอยางดานลางน

for (i=0;<9;i++)

scores[i]…;

Page 11: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

อารเรยกบการผานคา

การสง Array เขาไปใน Method จะเปนการสงต าแหนงของ Array

( Reference ) เขาไปใหกบ Parameter ของ Method

Page 12: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

อารเรยของออบเจกต

อารเรยสามารถเกบ 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 13: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

อารเรย 2 มต

• อารเรย 2 มต เปนตวแปรชดทมการจดการขอมล

Row (แถว) , Column (หลก) ซงอยในรปแบบตาราง

ทมแสดงต าแหนง 2 ตว

• อารเรย 2 มต คอ array of array กลาวคอ array

2 มต เปน array ของ array 1 มต นนเอง

Page 14: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การประกาศตวแปรอารเรย 2 มต

“ แบบท 1 แบบระบขนาดไมก าหนดคาเรมตนdata_type

array_name[row_size][column_size];

“ ตวอยางint score[2][10];char id[2][10];

**สรางตวแปรทม 2 แถว 10 หลกส าหรบเกบตวเลขจ านวนเตม

Page 15: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การประกาศตวแปรอารเรย 2 มต

“ แบบท 1 แบบระบขนาดไมก าหนดคาเรมตนdata_type

array_name[row_size][column_size];

“ ตวอยางint score[2][10];char id[2][10];

**สรางตวแปรทม 2 แถว 10 หลกส าหรบเกบตวเลขจ านวนเตม

Page 16: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การก าหนดคาเรมตนใหกบอารเรย 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 เทานน สวนมตอนๆ ตองมการระบขนาดดวยทกครง

Page 17: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

คลาส ArrayList

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

ตางจาก array ปกตทจะเปนการก าหนดขนาดของตวแปรอารเรยคงท

แต ArrayList จะสามารถแกไขขนาดได เวลาใสขอมลเขาไปกไมตอง

ก าหนดขนาดเฉพาะไวกอน

***การเรยกใชงานตอง import เขามา

import java.util.ArrayList;

method ทใชในการจดการขอมล ดงน

1.add(ต าแหนงอารเรย,คาขอมลในอารเรย)

2.remove(ต าแหนงอารเรย)

3.get(ต าแหนงอารเรย)

4.indexOf(ขอมลอารเรย)

5.ชออารเรย.size()

Page 18: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

สตรง(String)

สตรงเปนออปเจค (Object) ทสบทอดคณสมบตมาจากคลาส

สตรง (Class String) ถาตองการสรางออปเจคจากคลาสสตรง ตอง

ประกาศดงน

String str = new String(‚Java‛);

หรอ String str = ‚Java‛;

ถาเราตองการให str มคาวางตองประกาศเชนน String str = null;

การเกบขอมลของสตรงนน จะมการเกบขอมลอย 2 สวน สวน

แรกจะเปนขอมลตวอกษรโดยเกบเรยงกนไป แบะสวนท 2 จะเกบ

จดสนสดของสตรง ซงจสนสดของสตรงจะใช Null Characterหรอ

‘\0’

Page 19: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

สตรง(String) ตวอยาง

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

Page 20: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

การเปรยบเทยบ String

โดยใช equals( )ซง เปน

method ตวนงทอยใน String Class

โดยจะท าหนาทเปรยบเทยบ String 2

ชดวามสมาชกหรอขอความทเหมอนกน

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

Page 21: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

อธบายโปรแกรม

อธบายโปรแกรม จากโปรแกรมมการก าหนดตวแปร s1

และ s2 เปน String โดยมขอความเหมอนกน จากนนก าหนดเงอนไข

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

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

พมพขอความ "s1 equals s2" แตถาขอความไมเหมอนกนกจะพมพ

ขอความ "s1 not equals s2" ออกมาแทน ใหเราทดสอบ โดยการ

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

เปนตวใหญกถอวาขอความไมเหมอนกน

Page 22: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

คลาสสตรงบฟเฟอรและสตรงบลเตอร

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 เทานน

Page 23: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

คลาสสตรงบฟเฟอรและสตรงบลเตอร (ตอ)

2.คลาสสตรงบลเดอร

มคณสมบตคลายๆกบ StringBuffer แตตางกน

ตรงท StringBuilder ไมเปน Thread Save จงท าใหท างาน

ไดเรวกวา StringBuffer การเรยกใชงาน กเรยกใชงานได

เหมอนกน

Page 24: กลุ่ม 4 ข้อมูลชนิดอาร์เรย์และสตริง

ขอบคณคะ/ครบ