Upload
kunanya12
View
78
Download
1
Embed Size (px)
Citation preview
ขอมลชนดอารเรยและสตรง
สมาชก
นาย ครองพล ปจมนตร เลขท 8
นาย พทยตม วรรณะ เลขท 10
นาย วชญพล กาญจนก าเนด เลขท 11
นางสาว คณญญา หนนภกด เลขท 27
นางสาว ณชชา นาเวช เลขท 28
นางสาว ณฐนนท ภญโญ เลขท 29
มธยมศกษาปท 6/3
ขอมลชนดอารเรยและสตรง
array คอกลมของขอมลทเรยงล าดบกน มจ านวนแนนอน
ซงขอมลจะเปนประเภทเดยวกน ขอมลแตละตวของอารเรย จะ
เรยกวา อลเมนต(Element) และขอมลแตละอลเมนตจะมหมายเลข
เพอใชในการอางองถงเรยกตวเลขน วา เลขดชน (Index) จะเปนตว
แปรทชอ เหมอนกน แตจะแตกตางกนตรงหมายเลข
ตวแปร Array 1 มต
การใชตวแปร array มรปแบบดงน
ประเภทตวแปร ชอตวแปรarray[จ านวนสมาชกของ array];
ตวแปร 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
ตวแปรอารเรยหลายตว
การประกาศอารเรยหลายตวท าไดดงน
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
การก าหนดคาเรมตนใหกบอารเรย 1 มต
สามารถก าหนดคาเรมตนใหกบ array ไดตงแตตอนประกาศตวแปร
คาทก าหนดตองอยในเครองหมาย { } และถามมากกวา 1 คา ตองแยก
จากกนดวยเครองหมาย ,(comma)
เชน int a[5] = {10,20,30,40,50 } ;
การก าหนดคาเรมตนใหกบอารเรย 1 มต
ถาในตอนประกาศตวแปรอารเรยไมก าหนดคาเรมตนใหกบมนแลว คาทอยใน
ตวแปรจะเปนคาทคางอยในหนวยความจ าชวงทเราจองไวเปนอารเรยนน
ถาก าหนดคาเรมตนตงแตตอนประกาศตวแปรแตก าหนดไมครบ ในกรณท
เปนอารเรยแบบตวเลขทงจ านวนเตมและจ านวนจรง คาทเหลอจะถกก าหนดเปน 0
โดยอตโนมต
เชน float price[5] = {50.5,2.25,10.0} ;
การก าหนดคาเรมตนใหกบอารเรย 1 มต
บางครงถาก าหนดคาเรมตนใหแกอารเรยเลย เราไมจ าเปนตองใสขนาด
ของอารเรยกได เชน float a[ ] = {1,2,3,4,5} ;
ความหมายคอ เปนการก าหนดตวแปรอารเรยของจ านวนจรงแบบ float ขนาด 5
ชอง
***เราไมสามารถประกาศตวแปรอารเรยโดยไมใสขนาดของอารเรยได ยกเวนม
การก าหนดคาเรมตนใหกบมนตงแตแรก
การประมวลผลอารเรย
Element ของอารเรย ล าดบแรกจะเปน 0 เสมอ ล าดบ
ของ Element ของอารเรยโดยสวนมากจะเปนคาตวเลขจ านวนเตม
ตวอยางเชน ใชอารเรย scores เราจะเขาถง Element แรกไดดงน
scores[0]
และถาตองการจะประมวลผล Element ทงหมด กสามารถใชลปเขา
มาชวยไดดงตวอยางดานลางน
for (i=0;<9;i++)
scores[i]…;
อารเรยกบการผานคา
การสง Array เขาไปใน Method จะเปนการสงต าแหนงของ Array
( Reference ) เขาไปใหกบ Parameter ของ Method
อารเรยของออบเจกต
อารเรยสามารถเกบ 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();
อารเรย 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 แบบระบขนาดไมก าหนดคาเรมตน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 เทานน สวนมตอนๆ ตองมการระบขนาดดวยทกครง
คลาส ArrayList
ArrayList เปนคลาสทรวบรวมค าสงพเศษทชวยสงงานอารเรย
ตางจาก array ปกตทจะเปนการก าหนดขนาดของตวแปรอารเรยคงท
แต ArrayList จะสามารถแกไขขนาดได เวลาใสขอมลเขาไปกไมตอง
ก าหนดขนาดเฉพาะไวกอน
***การเรยกใชงานตอง import เขามา
import java.util.ArrayList;
method ทใชในการจดการขอมล ดงน
1.add(ต าแหนงอารเรย,คาขอมลในอารเรย)
2.remove(ต าแหนงอารเรย)
3.get(ต าแหนงอารเรย)
4.indexOf(ขอมลอารเรย)
5.ชออารเรย.size()
สตรง(String)
สตรงเปนออปเจค (Object) ทสบทอดคณสมบตมาจากคลาส
สตรง (Class String) ถาตองการสรางออปเจคจากคลาสสตรง ตอง
ประกาศดงน
String str = new String(‚Java‛);
หรอ String str = ‚Java‛;
ถาเราตองการให str มคาวางตองประกาศเชนน String str = null;
การเกบขอมลของสตรงนน จะมการเกบขอมลอย 2 สวน สวน
แรกจะเปนขอมลตวอกษรโดยเกบเรยงกนไป แบะสวนท 2 จะเกบ
จดสนสดของสตรง ซงจสนสดของสตรงจะใช Null Characterหรอ
‘\0’
สตรง(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
การเปรยบเทยบ 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 แคเปลยนตวอกษรตวเลก
เปนตวใหญกถอวาขอความไมเหมอนกน
คลาสสตรงบฟเฟอรและสตรงบลเตอร
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 การเรยกใชงาน กเรยกใชงานได
เหมอนกน
ขอบคณคะ/ครบ