SlideShare a Scribd company logo
1 of 51
กลุ่มที่ 4
ข้อมูลชนิดอาร์เรย์และสตริง
อาร์เรย์ (ARRAY)
อาร์เรย์(Array) เป็นตัวแปรชุดให้สาหรับเก็บข้อมูลที่มีความสัมพันธ์กัน โดยจะเก็บไว้ในชื่อ
เดียวกันสมาชิกแต่ละตัวของ Array จะเรียกว่า Element หรือ Cell ตัวเลขที่ใช้ระบุตาแหน่ง
สมาชิกของ Array เรียกว่า Index หรือ Subscript
 ตัวอย่าง Array X ที่มี 5 Element ซึ่งจะเริ่มต้นตั่งแต่ Index 0 ถึง 4
ตัวแปรอาร์เรย์แบบ 1 มิติ
 อาร์เรย์หนึ่งมิติ มีโครงสร้างเทียบเท่าเมตริกซ์ขนาด nx1 การประกาศตัวแปรอาร์เรย์จะใช้
เครื่องหมาย [ ] ล้อมค่าตัวเลขจานวนเต็ม เพิ่อบอกจานวนหน่วยข้อมูลที่ต้องการได้ในรูป
 ชนิดของตัวแปร ชื่อตัวแปร[จานวนสมาชิกที่ต้องการ]
data_type variable_name [ number-of-elements ]
เช่น int a[5];
double x, y[10], z[3];
ตัวแปรอาร์เรย์หลายตัว
 อาร์เรย์หลายมิติ (Multi-dimensional array) คือ อาร์เรย์ที่มีสมาชิกเป็นข้อมูลอาร์เรย์ นั้นคือ ในหน่วยข้อมูลแต่ละหน่วยของ
อาร์เรย์จะเป็นอาร์เรย์ย่อยๆ ซึ่งอาจจะกาหนดซ้อนลงไปได้หลายชั้น
 การกาหนดอาร์เรย์หลายมิติ จะกระทาในรูป
ชนิดตัวแปร ชื่อตัวแปร[จานวนสมาชิก][จานวนสมาชิก]….; ตัวแปรอาร์เรย์หลายตัว
 การประกาศอาร์เรย์หลายตัวทาได้ดังนี้
int [] abc , xyz;
abc = new int[500];
xyz = new int[10];
หรือเขียนรวมกันได้ดังนี้
int[] abc = new int[500], xyz = new int[10];
ตัวอย่างอาร์เรย์หลายมิติ
 เช่น อาร์เรย์ที่มีสมาชิกอยู่ 3 ตัว และสมาชิกแต่ละตัวก็เป็นอาร์เรย์เก็บข้อมูลชนิด int มีจานวน
สมาชิก 2 ตัว จะกาหนดได้ดังนี้ int a[3][2];
 ขนาดของอาร์เรย์3 x 2
 จานวนไบต์ ที่ใช้ในการเก็บอาร์เรย์sizeof (a) คานวณจาก 3 x 2 x sizeof ( int ) =
3x2x4 = 24 ไบต์
ตัวอย่างอาร์เรย์หลายมิติ
 จากการกาหนดดังกล่าวจะได้อาร์เรย์ที่มีโครงสร้างดังรูป
 การจัดวางภายในหน่วยความจาสามารถแสดงได้ดังรูป
การกาหนดค่าเริ่มต้นให้อาร์เรย์ 1 มิติ
 สามารถประกาศตัวแปร Array พร้อมกับกาหนดค่าเริ่มต้นให้กับสมาชิก Array ได้โดยมี
รูปแบบดังนี้ชนิดของตัวแปรอาร์เรย์ชื่ออาร์เรย์[จานวนข้อมูล] = {ค่าคงที่,ค่าคงที่, …};
 เช่น
การกาหนดค่าเริ่มต้นให้อาร์เรย์ 1 มิติType [] var_name = {value1,value2,value3};
int []num = {5,6,9}; String []name ={“noom”,”boby”,”goft”};Int []unit = {1}
ตัวอย่างโปรแกรม
การเข้าถึงตัวแปรอาร์เรย์
 เมือมีการประกาศอาร์เรย์แล้ว ค่าตาแหน่งหมายเลขลาดับข้อมูลสาหรับใช้เข้าถึงตัวแปร
ย่อยต่างๆ ในอาร์เรย์จะถูกกาหนดโดยอัตโนมัติ
 โดยหากกาหนดอาร์เรย์ด้วยขนาด n ข้อมูล หน่วยแรก จะมีค่าตาแหน่งลาดับเป็น 0 ไป
จนถึงข้อมูลหน่วยสุดท้ายจะมีค่าตาแหน่งลาดับเป็น n-1
 เช่น int v[5];
 ถ้าต้องการอ่านหรือเขียนข้อมูลในหน่วยต่างๆของตัวแปรอาร์เรย์จะต้องอ้างชื่อตัวแปร
 ตามด้วยค่าลาดับของหน่วยในกลุ่มข้อมูลอาร์เรย์ล้อมด้วยเครื่องหมาย [ ] ซึ่งเรียกว่า
subscript (หรือดัชนี index)
 ค่าดัชนี อาจอยู่ในรูป ค่าคงที่ของตัวแปร นิพจน์ หรือฟังก์ชันที่ให้ค่าเป็นค่าจานวนเต็มก็
ได้( positive integer >=0 )
 ของเขตของ index หรือ subscript มีค่าตั้งแต่ 0 ถึง n-1 ( n คือขนาดของ
อาร์เรย์)
การใช้คาสั่งวนรอบ FOR ในการเข้าถึงค่าในอาร์เรย์
 เราสามารถใช้คาสั่ง วนรอบ for ในการวนรอบรับค่าที่ป้ อนเข้ามาและใช้ในการ
คานวณโดยการใช้ตัวแปรในการวนรอบและใช้ตัวแปรเดียวกันเพื่อกาหนดลาดับของ
ข้อมูลที่จะใช้ในอาร์เรย์
int x,a[5];
for (x=0; x<5; x++)
{ printf(“Enter value for a[%d]:”,x);
scanf(“%d”,&a[x]);
}
printf(“Show all valuesn”);
for (x=0; x<5; x++)
{ printf(“a[%d] = %d”, x, a[x]); }
ตัวอย่างโปรแกรม
int grades[5];
grades[0] = 98;
grades[1] = grades[0] – 11;
grades[2] = 2 * (grades[0] – 6);
grades[3] = 79;
grades[4] = (grades[2]+grades[3]– 3)/2;
total = ggrraaddeess[[03]]++ ggrraaddeess[[14]]+; grades[2]+
grades[i];
grades[2*i];
grades[j-i];
ถ้าต้องการหาผลรวมของตัวแปร grade ทั้ง 5 อีลีเมนต์ทาดังนี้
total = grades[0] + grades[1] + grades[2] +
grades[3] + grades[4];
เปลี่ยนเป็น for loop ได้ดังนี้
total = 0;
for ( i = 0 ; i <= 4 ; i++)
total += grades[i];
การส่งผ่านอาร์เรย์ไปยังฟังก์ชัน
สามารถแบ่งได้เป็น 2 ลักษณะ
 การส่งผ่านค่าอีลีเมนต์อาร์เรย์ให้กับฟังก์ชันเป็นการเรียกใช้ฟังก์ชันแบบ
Call-by-value
 การส่งอาร์เรย์ทุกอีลีเมนต์ให้กับฟังก์ชันเป็นการเรียกใช้ฟังก์ชันแบบCallby-
reference
การเรียกใช้แบบ CALL-BY-VALUE
 ใช้วิธีการส่งค่าของตัวแปร (value) ให้กับฟังก์ชัน โดยผ่านพารามิเตอร์
 ไม่สามารถแก้ไขค่าของอาร์กิวเมนต์(หรือพารามิเตอร์)ภายในฟังก์ชันได้ = การแก้ไขค่าต่างๆใน
 ฟังก์ชัน ไม่มีผลต่อตัวแปรที่ส่งค่ามา
 ใช้กับฟังก์ชันที 􀃉รับค่าเข้าเป็นตัวแปรธรรมดา (int, float, char,...)
เช่น void triple(int x)
{ x=x*3; printf(“x = %d”,x); } ….
int x=5, y[2]={10,11};
triple(x); triple(y[0]);
การเรี ยกใช้แบบ CALL-BY-REFERENCE
 ใช้วิธีการส่งค่า แอดเดรส (Address)*** ของตัวแปรไปให้ฟังก์ชัน
 ใช้กับฟังก์ชันที่รับค่าเข้าเป็นอาร์เรย์
 สามารถแก้ไขค่าของอาร์กิวเมนต์ภายในฟังก์ชันได้= การแก้ไขค่าตัวแปรอาร์เรย์ ภายในฟังก์ชัน มี
ผลการเปลี่ยนแปลงต่อตัวแปรที่ส่งค่ามา เพราะ การมีการจัดการค่าของหน่วยความจาในตาแหน่ง
เดียวกัน
***แอดเดรส (Address) คือ ค่าที่ใช้อ้างถึงตัวข้อมูลภายในหน่วยความจา เหมือนกับ
หมายเลขบ้านเลขที่***
ฟังก์ชันที่มีการรับค่าเข้าเป็ นอาร์เรย์
 ฟังก์ชันสามารถที่จะรับค่าเข้าเป็นอาร์เรย์ได้ซึ่งรูปแบบของการเขียนต้นแบบของฟังก์ชันเป็นดังนีชนิด
ข้อมูล ชื่อฟังก์ชัน(ชนิดข้อมูล ชื่อตัวแปร[ขนาดอาร์เรย์]);
 ในกรณีฟังก์ชันมีการรับค่าเข้าเป็นอาร์เรย์1 มิติ อาจจะไม่ต้องกาหนดขนาดของอาร์เรย์ก็ได้
 ตัวอย่างเช่น
int sum_arr(int num[10]);
void print_arr(int a[5]);
float average(int num[]);
การส่งผ่านค่าอีลีเมนต์อาร์เรย์ให้กับฟังก์ชัน
 หากฟังก์ชันmy_func มีต้นแบบของฟังก์ชันดังนี้
void my_func(int x);
 และใน main ได้มีการประกาศตัวแปรอาร์เรย์ชื่อว่า num
int num[10];
 การส่งอีลีเมนต์ที่ 0 ของอาร์เรย์num ไปเป็นอาร์กิวเมนต์ของฟังก์ชันmy_func
สามารถเขียนได้ดังนี้
my_func(num[0]);
ตัวอย่างที่ 1 : การส่ งค่าแต่ละอีลีเมนต์ในอาร์เรย์ให้กับฟั งก์ชัน
#include <stdio.h>
void check_val(int x);
int main()
{
int a[3] = {2,-1,5};
check_val(a[0]);
return 0;
}
void check_val(int x)
{
if(x >= 0)
printf("%d : Positiven",x);
else
printf("%d : Negativen",x) ;
}
2 : Positive
ตัวอย่างที่ 2: การส่งค่าแต่ละอีลีเมนต์ในอาร์เรย์ให้กับ
ฟังก์ชัน
#include <stdio.h>
void check_val(int x);
int main()
{
int i,a[3] = {2,-1,5};
for(i=0;i<3;i++)
check_val(a[i]);
return 0;
}
void check_val(int x)
{
if(x >= 0)
printf("%d : Positiven",x);
else
printf("%d : Negativen",x);
}
2 : Positive
-1 : Negative
5 : Positive
ตัวอย่างที่ 3 : การส่งค่าแต่ละอีลีเมนต์ในอาร์เรย์ให้กับ
ฟังก์ชัน
#include <stdio.h>
void showVal(int val); /* function prototype */
void main()
{
int nums[5] = {2, 18, 1, 27, 16};
showVal(nums[0]);
}
void showVal(int val) /* show a value */
{
printf("Value is %dn", val);
}
Value is 2
การส่งอาร์เรย์ทุกอีลีเมนต์ของอาร์เรย์ให้กับฟังก์ชัน
 การส่งอาร์เรย์ในกรณีนี้ ใช้แค่ชื่อตัวแปรอาร์เรย์เท่านั้น เช่น หากใน main มีการ
ประกาศอาร์เรย์ดังนี้
int num[10];
 และฟังก์ชัน print_arr มีต้นแบบฟังก์ชันดังนี้
void print_arr(int a[10]);
 การส่งอาร์เรย์num ทุกอีลีเมนต์ไปให้ฟังก์ชันprint_arr สามารถเขียนได้ดังนี้
print_arr(num);
ตัวอย่างที่1: การส่งอาร์เรย์ทุกอีลีเมนต์ให้กับฟังก์ชัน
#include <stdio.h>
void print_arr(int a[4]);
int main() {
int num[4] = {5,2,-1,8};
print_arr(num);
return 0;
}
void print_arr(int a[4])
{
int i;
for(i =0;i<4;i++)
printf("%d ", a[i]);
}
5 2 -1
อาร์เรย์ของออบเจ็กต์
 อาร์เรย์สามารถเก็บ reference ของ Object ได้โดยกาหนดให้อาเรย์
เป็น Class นั้น ๆ ในตอนประกาศอาเรย์มีรูปแบบดังนี้
เช่น
Student [] studentList = new Student[10];
className [] arrayName = new className[size];
 Student [] studentList = new Student[3];
 studentList[0] = new Student();
 studentList[1] = new Student();
 studentList[2] = new Student();
อาร์เรย์แบบ 2 มิติ
 โดยสรุป สาหรับอาร์เรย์สองมิติ เมื่ออ้างชื่ออาร์เรย์จะหมายถึงตาแหน่งเริ่มต้นของอาร์เรย์
ทั้งหมด (อาร์เรย์2 มิติ)
 เมื่ออ้างชื่ออาร์เรย์พร้อมสมาชิกหนึ่งอันดับ จะหมายถึงตาแหน่งเริ่มต้นของอาร์เรย์ย่อยภายใน
(อาร์เรย์1 มิติ)
 เมื่ออ้างชื่ออาร์เรย์พร้อมค่าสองอันดับ จะหมายถึง ข้อมูลภายในอาร์เรย์
อาเรย์ 2 มิติ
การประกาศตัวแปรอาร์เรย์ 2 มิติ
int val[3][4];
double prices[10][5];
char code[6][4];
การใช้คาสั่ง FOR ในการเข้าถึงอาร์เรย์ 2 มิติ
 ใช้ลูป for 2 ชั้น โดยลูปชั้นนอกวนรอบตามจานวนแถว ส่วนลูปชั้นในวนรอบตามจานวนหลัก
 ต้องมีตัวนับ 2 ตัว คือ ตัวนับแถวและตัวนับหลัก
 ตัวอย่างเช่น
ตัวอย่าง : การแสดงค่าของอาร์เรย์ 2 มิติ
การให้ค่าเริ่ มต้น (ARRAYINITIALIZATION)
เราจะใช้กลุ่มค่าคงที่ที่มีสมาชิกเป็นกลุ่มค่าคงที่ย่อย ซึ่งเป็นชนิดเดียว กัน
และมีขนาดเท่ากัน
รวมถึงสอดคล้องกับชนิดของอาร์เรย์ด้วย
 โดยใช้เครื่องหมาย {} หรือ , ในการแบ่งแยกแต่ละแถว
ตัวอย่างการให้ค่าเรื่ มต้น
(ARRAYINITIALIZATION)
 int val[3][4] ={ { 8,16, 9, 52 },
{3,15, 27, 6},
{14, 25, 2, 10} };
 int val[3][4] = { 8, 16, 9, 52,
3, 15, 27, 6,
14, 25, 2, 10 };
หากไม่มีการกาหนดจานวนแถว คอมไพเลอร์จะกาหนดจานวนแถวโดย
นับจากที่กาหนด
ในค่าเริ่มต้น แต่จะต้องมีการกาหนดจานวนหลักเสมอ เช่น
int a[][2] = {{5,8},{9},{-1}};
 ในการกาหนดค่าเริ่มต้นของอาร์เรย์2 มิติ สามารถละเครื่องหมายปีกกาที่ใช้แบ่งแถวได้
โดยใช้จานวนหลักในการจัดว่าอีลีเมนต์ใดอยู่แถวใด
CLASS ARRAYLIST
 ในภาษา Java มีกลุ่มคลาสที่เ รียกว่า คอลเล็กชั่น (Collection) ซึ่ง ออบเจ็กต์จากคลาสนี้
สามารถใช้สะสมออบเจ็กต์ต่าง ๆ ไว้ได้เช่น Class ArrayList ดีกว่าArray ทีส ามารถเพื่ม
สมาชิกได้โดยไม่ต้องประกาศไว้ล่วงหน้าการใช้ Class ArrayList จะต้อง import
java.util.ArrayList
ตัวอย่างการสร้างออบเจ็กต์ จาก Class ArrayList
ArrayList nameList = new ArrayList();
METHOD ที่สาคัญของ ARRAYLIST
 add(int index,Object obj) ใช้ใส่ออบเจ็กต์ลงในอาร์เรย์ทีต่าแหน่ง index
 remove(int index) นาออบเจ็กต์ตาแหน่ง index ออกจากอาร์เรย์
 get(int index) คืนค่าออบเจ็กต์ในตาแหน่ง index
 indexof(Object obj) คืนค่า index ของออบเจ็กต์ทีร 􀃉 ะบุ
 size สาหรับหาขนาดของ ArrayList
STRING
String คือข้อความ หรือ สายของอักขระ ในภาษา C++ ไม่มีตัวแปร
ประเภท String แต่จะมีตัวแปรประเภท char ให้ใช้แทน ซึ่งตัวแปร
ประเภทchar จะสามารถเก็บอักขระได้1 อักขระ เท่านั้นถ้าหากเราอยากให้
ตัวแปร char สามารถเก็บข้อความได้เราก็สามารถ ทาให้ตัวแปร char เป็น
array ได้char Name[10];
ตัวอย่างเช่น CHAR NAME[10];
ความหมายว่า
 ตัวแปร ชื่อ Name เป็นตัวแปรประเภทchar สามารถเก็บอักขระได้9 ตัวอักษรสาเหตุที่เก็บได้9
ตัวอักษรก็เพราะว่า ในกรณีที่เราใช้ตัวแปร char เป็น array เพื่อเก็บข้อความCompiler จะเหลือเนื้อที่
ตาแหน่งสุดท้ายไว้เก็บอักขระ นัล เพื่อให้รู้ว่าเป็นการจบ String
เพราะฉะนั้นรูปแบบการประกาศตัวแปร char ที่เป็น Stringจึงเป็นแบบนี้
 char ชื่อตัวแปร[จานวนอักษร+1]; ถ้าเราต้องการประกาศตัวแปร char ที่เป็น String ไว้เก็บข้อมูล
ชื่อที่มีได้มากสุด 30 ตัวอักษรก็ให้ ประกาศดังนี้char Name[31]; หรือถ้าเรา จะประกาศตัวแปร char ที่
เป็น String ไว้เก็บข้อมูลชื่อเดือนมีได้มากสุด20 ตัวอักษร ก็ให้ประกาศดังนี้char Month[21];
การเปรียบเทียบ STRING
 ใช้เครื่องหมาย = =
เป็นการเปรียบเทียบว่า String 2 ตัวเป็น Object เดียวกันหรือไม่ โดยจะเปรียบเทียบค่าอ้างอิงหรือ
ที่อยู่ในหน่วยความจาของตัวแปรทั้งสอง ไม่ได้เป็นการเปรียบเทียบถึงข้อมูลที่ String ทั้ง 2 ตัวว่าเก็บ
ข้อมูลเดียวกันหรือไม่
EQUALS() METHOD
 เป็นการเปรียบเทียบค่าใน String Object ทั้ง 2 ตัวเป็นค่าเดียวกันหรือไม่ โดยที่จะให้ค่าเป็น
จริง (True) ก็ต่อเมื่อตัวอักษรทุกตัวใน String ทั้ง 2 ค่าจะต้องเหมือนกันหมด โดยสนใจตัวอักษร
พิมพ์เล็กและพิมพ์ใหญ่ด้วย หากต่างกันก็จะให้ค่าเป็นเท็จ (False)
COMPARETO METHOD
การเปรียบเทียบความไม่เท่ากันของ String โดยจะให้ค่าที่ได้จากการเปรียบเทียบแบ่งเป็น 3
ค่าคือ
 - เป็นลบ (-) ถ้าค่าแรกน้อยกว่าค่าที่สอง
 - เป็นบวก (+) ถ้าค่าแรกมากกว่าค่าที่สอง
 - เป็นศูนย์(0) ถ้าค่าเท่ากัน
คลาส STRINGBUFFER
 คลาส StringBuffer จะมีลักษณะคล้ายกับคลาส String เพียงแต่เป็นตัวแปรสตริงที่มีการแก้ไขค่าแบบถาวร
คอนสตรักเตอร์ของคลาส StringBuffer ที่น่าสนใจมีดังต่อไปนี้
 StringBuffer(String s) เก็บสตริง s ไว้ในตัวแปร StringBuffer
 StringBuffer() เก็บข้อความว่างเปล่าไว้ในตัวแปร StringBuffer และมีขนาด16 byte เหตุที่ตัวแปร
StringBuffer มีขนาดปกติ 16 และจะเพิ่มขนาดเมื่อเก็บข้อความลงไป เป็นเพราะถ้ามีการเปลี่ยนข้อความที่เก็บภายหลัง
ข้อความใหม่อาจมีขนาดไม่เท่าเดิม ดังนั้นจาวาจึงว่างไว้อีก 16 ที่ว่างเพื่อจะได้ไม่ต้องกันที่ในหน่วยความจาเพิ่มเติมอีกใน
กรณีที่ข้อความใหม่มีขนาดใหญ่กว่าเดิมไม่เกิน 16 เพราะการกันที่ในหน่วยความจาเพิ่มเติมภายหลังเป็นเรื่องยุ่งยากและอาจ
ทาให้ประสิทธิภาพในการเข้าถึงลดลง
 StringBuffer(int length) เก็บข้อความว่างเปล่าไว้ในตัวแปร StringBuffer และมีขนาดเท่ากับ length
เมธอดที่น่าสนใจส่วนหนึ่ งของคลาส
S T R I N G B U F F E R
 StringBuffer append(String s)
 StringBuffer append(char c)
 StringBuffer append(chra[] c, int offset, int len)
 StringBuffer append(booleab b)
 StringBuffer append(int i)
 StringBuffer append(long l)
 StringBuffer append(float f)
 StringBuffer append(double d)
เ ม ธ อ ด นี้ เ ป็ น โ อ เ ว อ ร์ โ ห ล ด เ ม ธ อ ด ทา ห น้า ที่ เ พิ่ ม ข้อ ค ว า ม ใ น ว ง เ ล็ บ
เ ข้า ไ ป ต่ อ ท้า ย ข้อ ค ว า ม ที่ มี อ ยู่ แ ล้ว ใ น S T R I N G BU F F E R ถ้า
มี ก า ร เ ป ลี่ ย น แ ป ล ง S T R I N G BU F F E R ผ่ า น เ ม ธ อ ด ข้อ ค ว า ม
จ ะ ถู ก เ ป ลี่ ย น แ บ บ ถ า ว ร
 StringBuffer insert(int offset, String s)
 StringBuffer insert(int offset, char c)
 StringBuffer insert(int offset, char[] c)
 StringBuffer insert(int offset, boolean b)
 StringBuffer insert(int offset, int i)
 StringBuffer insert(int offset, long l)
 StringBuffer insert(int offset, float f)
 StringBuffer insert(int offset, double b)
เ ม ธ อ ด นี้ เ ป็ น โ อ เ ว อ ร์ โ ห ล ด เ ม ธ อ ด ทา ห น้า ที่ แ ท ร ก ข้อ ค ว า ม ใ น ว ง เ ล็ บ เ ข้า
ไ ป ใ น ตา แ ห น่ ง ที่ เ ท่ า กับ O F F S E T
 StringBuffer deleteCharAt(int index) เมธอดนี้จะทาหน้าที่ลบตัวอักษรในตาแหน่ง index
ออก
 StringBuffer delete(int start, int end) เมธอดนี้จะทาหน้าที่ลบตัวอักษรจากตาแหน่ง start ถึง
end ออก
 StringBuffer revers()เมธอดนี้จะทาหน้าที่กลับตัวตัวอักษรจากหลังมาหน้า
 char charAt(int index) ล่งค่าตัวอักษรในตาแหน่ง index กลับ
 char setCharAt(int index, char ch) เปลี่ยนตัวอักษรในตาแหน่ง index ด้วย chtoString()
ส่งค่า
ของข้อความออกมาในรูปตัวแปรสตริง
ข้อแตกต่างระหว่าง STRINGBUFFER และ
STRING
ข้อที่แตกต่างระหว่าง StringBuffer และ String คือขนาดของ
StringBuffer ไม่จาเป็นต้องเท่ากับขนาดของข้อความและสามารถเพิ่ม
หรือลดขนาดได้เราสามารถตรวจสอบขนาดของ StringBuffer ได้โดย
ใช้เมธอด intcapacity() ซึงจะคืนค่าปัจจุบันของ StringBuffer ดัง
ตัวอย่างต่อไป
จากโค้ดข้างบนในบรรทัดที่ (1) เราสร้างตัวแปร s1 โดยไม่เก็บค่าอะไร
เลย ผลที่ได้คือขนาดของข้อความเท่ากับ 0 แต่ขนาดของตัวมันเองจริงเป็น 16
ซึ่งเป็นค่าปกติ ในบรรทัดที่ (2) เราสร้างตัวแปร s2 โดยให้เก็บค่า Hello
ผลที่ได้คือขนาดข้อความเป็น 5 แต่ขนาดของตัวมันเองเท่ากับค่าปกติบวกด้วย
ความยาวของข้อความที่สั่งให้มันเก็บซึ่งเท่ากับ 21 น่ันเอง ในบรรทัดที่(3) เรา
พยายามสร้างตัวแปร s3 ซึ่งเป็นวิธีการที่ใช้ไม่ได้กับตัวแปร
StringBuffer
เหตุที่ตัวแปร StringBuffer มีขนาดเท่ากับ 16 และจะเพิ่มขนาดเมื่อ
เก็บข้อความลงไป เป็นเพราะถ้ามีการเปลี่ยนแปลงข้อความที่เก็บภายหลัง ข้อ
ความหใม่อาจมีขนาดไม่เท่าเดิม จาวาจึงเผื่อที่ว่างไว้อีก 16 ที่ว่าง เพื่อจะได้ไม่
ต้องกันพื่นที่ในหน่วยความจาเพิ่มเติมอีกในกรณีที่ข้อความใหม่มีขนาดใหญ่
กว่าเดิมไม่เกิน 16 เพราะการกันที่ในหน่วยความจาเพิ่มเติมภายหลังทาได้ยาก
เนื่องจากพื่นที่ในหน่วยความจาทีเพิ่มขึ้นอาจไม่อยู่ติดกับพื้นที่เดิมทาให้
ประสิทธิภาพในการเข้าถึงลดลง
สมาชิก
1. นาย พีรวิชญ์สุวรรณรัฐ เลขที่ 3
2. นาย อมรณัฐ อ่อนน้อม เลขที่ 4
3. นาย เพชร พรหมสีทอง เลขที่ 8
4. นาย ราชสิงห์ ทรงบัณทิตย์เลขที่ 10
5. นาย อังกูร ตันประเสริฐ เลขที่ 11
6. นางสาว ธัญญารัตน์ แต้นุเคราะห์ เลขที่ 14
ชั้นมัธยมศึกษาปีที่ 6/2

More Related Content

What's hot

โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์
waradakhantee
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็ม
Jitti Nut
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
Mook Sasivimon
 
ตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระ
Lacus Methini
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
Mook Sasivimon
 

What's hot (20)

(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
(Big One) C Language - 02 ฟังก์ชันส่งผ่านสตริง
 
บทที่ 6
บทที่ 6บทที่ 6
บทที่ 6
 
โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็ม
 
Array1
Array1Array1
Array1
 
Method
MethodMethod
Method
 
Variable Constant Math
Variable Constant MathVariable Constant Math
Variable Constant Math
 
ข้อมูลชุดอาร์เรย์ และสตริง
ข้อมูลชุดอาร์เรย์  และสตริงข้อมูลชุดอาร์เรย์  และสตริง
ข้อมูลชุดอาร์เรย์ และสตริง
 
ข้อมูลชนิดอาร์เรย์และสตริง
ข้อมูลชนิดอาร์เรย์และสตริงข้อมูลชนิดอาร์เรย์และสตริง
ข้อมูลชนิดอาร์เรย์และสตริง
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
 
ฟังก์ชันลดและฟังก์ชันเพิ่ม
ฟังก์ชันลดและฟังก์ชันเพิ่มฟังก์ชันลดและฟังก์ชันเพิ่ม
ฟังก์ชันลดและฟังก์ชันเพิ่ม
 
ตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระ
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
 
ตัวแปรชุด
ตัวแปรชุดตัวแปรชุด
ตัวแปรชุด
 
Java-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional ArraysJava-Chapter 07 One Dimensional Arrays
Java-Chapter 07 One Dimensional Arrays
 
Java Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่นJava Programming: อะเรย์และคอลเล็กชั่น
Java Programming: อะเรย์และคอลเล็กชั่น
 
..Arrays..
..Arrays....Arrays..
..Arrays..
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional Arrays
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
 

Viewers also liked

อาณาจักรมอเนอรา โปรติสตา ฟังไจ
อาณาจักรมอเนอรา โปรติสตา ฟังไจอาณาจักรมอเนอรา โปรติสตา ฟังไจ
อาณาจักรมอเนอรา โปรติสตา ฟังไจ
krunidhswk
 
Reino Monera
Reino MoneraReino Monera
Reino Monera
emanuel
 
อาณาจักรมอเนอรา
อาณาจักรมอเนอราอาณาจักรมอเนอรา
อาณาจักรมอเนอรา
พัน พัน
 
แบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพ
แบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพแบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพ
แบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพ
Sirintip Arunmuang
 

Viewers also liked (20)

Presentation1
Presentation1Presentation1
Presentation1
 
Kingdom monera
Kingdom moneraKingdom monera
Kingdom monera
 
การสอนประกอบแผน 4 monera
การสอนประกอบแผน 4 moneraการสอนประกอบแผน 4 monera
การสอนประกอบแผน 4 monera
 
Kingdom monera
Kingdom moneraKingdom monera
Kingdom monera
 
Kingdom monera
Kingdom moneraKingdom monera
Kingdom monera
 
PPT MONERA
PPT MONERAPPT MONERA
PPT MONERA
 
อาณาจักรมอเนอรา โปรติสตา ฟังไจ
อาณาจักรมอเนอรา โปรติสตา ฟังไจอาณาจักรมอเนอรา โปรติสตา ฟังไจ
อาณาจักรมอเนอรา โปรติสตา ฟังไจ
 
อาณาจักรพืช
อาณาจักรพืชอาณาจักรพืช
อาณาจักรพืช
 
Kingdom protista
Kingdom protistaKingdom protista
Kingdom protista
 
Kingdom monera
Kingdom moneraKingdom monera
Kingdom monera
 
อาณาจักรมอเนอรา
อาณาจักรมอเนอราอาณาจักรมอเนอรา
อาณาจักรมอเนอรา
 
Kingdom plantae
Kingdom plantaeKingdom plantae
Kingdom plantae
 
Reino Monera
Reino MoneraReino Monera
Reino Monera
 
Kingdom fungi
Kingdom fungiKingdom fungi
Kingdom fungi
 
อาณาจักรสัตว์
อาณาจักรสัตว์อาณาจักรสัตว์
อาณาจักรสัตว์
 
Kingdom monera
Kingdom moneraKingdom monera
Kingdom monera
 
Kingdom monera
Kingdom moneraKingdom monera
Kingdom monera
 
อาณาจักรมอเนอรา
อาณาจักรมอเนอราอาณาจักรมอเนอรา
อาณาจักรมอเนอรา
 
อาณาจักรฟังไจ
อาณาจักรฟังไจอาณาจักรฟังไจ
อาณาจักรฟังไจ
 
แบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพ
แบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพแบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพ
แบบทดสอบก่อนเรียนความหลากหลายทางชีวภาพ
 

Similar to งานนำเสนอ1

ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
 
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPTตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
Areeya Onnom
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
Onpreeya Sahnguansak
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
Onpreeya Sahnguansak
 
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระบทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
Mook Sasivimon
 
ตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระ
Sanita Fakbua
 

Similar to งานนำเสนอ1 (20)

ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPTตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
 
New presentation1
New presentation1New presentation1
New presentation1
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
 
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระบทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรอักขระ
 
ตัวแปรชุดนำเสนอ
ตัวแปรชุดนำเสนอตัวแปรชุดนำเสนอ
ตัวแปรชุดนำเสนอ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
ตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
08 arrays
08 arrays08 arrays
08 arrays
 
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
งานกลุ่มคอม กลุ่ม-5
งานกลุ่มคอม กลุ่ม-5งานกลุ่มคอม กลุ่ม-5
งานกลุ่มคอม กลุ่ม-5
 
99
9999
99
 
งาน
งานงาน
งาน
 
ตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
สื่อการนำเสนอเรื่องตัวแปรชุดและตัวแปรกลุ่มอักขระ
สื่อการนำเสนอเรื่องตัวแปรชุดและตัวแปรกลุ่มอักขระสื่อการนำเสนอเรื่องตัวแปรชุดและตัวแปรกลุ่มอักขระ
สื่อการนำเสนอเรื่องตัวแปรชุดและตัวแปรกลุ่มอักขระ
 

งานนำเสนอ1