Page 26 - การโปรแกรมคอมพิวเตอร์ขั้นสูง
P. 26
2-16 การโปรแกรมคอมพิวเตอร์ขั้นสูง
3.3 เมธอด trimToSize() ใช้สำ�หรับลดขนาดความจุ (capacity) ของออบเจ็กต์สตริงบิวเดอร์ให้มีขนาด
เท่ากับข นาดข องข ้อมูลจ ริงท ี่จัดเก็บอ ยู่ภายในอ อบเจ็กต์ โดยมีรูปแ บบดังนี้
void obj.trimToSize()
โดย
void คือ ผลลัพธ์ที่เกิดจากก ารล ดข นาดค วามจุ ซึ่งไม่มีการส ่งค ่าใด ๆ กลับมา
obj คือ ออบเจ็กต์ที่เกิดจ ากค ลาสสตริงบิวเดอร์
ในการใช้งานคลาสสตริงบิวเดอร์นั้นจำ�เป็นต้องมีการจองพื้นที่ของหน่วยความจำ� เพื่อนำ�มาทำ�เป็นความจุ
เอาไว้ส ำ�หรับใส่ข ้อมูล ซึ่งค วามจ สุ ่วนน ีใ้นบ างค รั้งม ขี นาดค ่อนข ้างใหญ่ แตม่ กี ารเก็บข ้อมูลภ ายในเพียงเล็กน ้อยเท่านั้น
ทำ�ให้สิ้นเปลืองพื้นที่หน่วยความจำ�โดยไม่จำ�เป็น ดังนั้น ในภาษาจาวาจึงใช้เมธอด trimToSize() เพื่อมาจัดการกับ
ปัญหาดังก ล่าว ซึ่งท ำ�ให้ความจ ุข องออบเจ็กต์ม ีข นาดเท่ากับขนาดของข ้อมูลจริง
ตวั อย่างท ่ี 2.8 การใช้เมธอด trimToSize() ส�ำหรับลดขนาดค วามจุข องออบเจ็กต์ส ตริงบิวเดอร์
ex2-8.java
1 class ex2-8 {
2 public static void main(String args[ ]) {
3 StringBuilder strBu1 = new StringBuilder();
4 strBu1.append("Java");
5 System.out.println(strBu1.capacity());
6 System.out.println(strBu1.length());
7 strBu1.trimToSize();
8 System.out.println(strBu1.capacity());
9 System.out.println(strBu1.length());
10 }
11 }
คำ�อ ธบิ ายโปรแกรม
บรรทัดท ี่ 1-11 สร้างคลาสช ื่อ ex2-8
บรรทัดที่ 2-10 สร้างเมธอด main เพื่อเริ่มต ้นการท ำ�งานข องโปรแกรม
บรรทัดที่ 3 ส ร้างออบเจ็กต์จากคลาสสตริงบิวเดอร์ ที่มีความจุขนาด 16 ช่อง โดยยังไม่มีการกำ�หนด
ค่าเริ่มต ้นใด ๆ และป ระกาศต ัวแปรแบบอ้างอิง ชื่อ strBu1 เพื่อใช้อ้างอิงไปยังออบเจ็กต์น ี้
บรรทัดท ี่ 4 ใช้เมธอด append() เพื่อเพิ่มข้อมูล “Java” เข้าไปในอ อบเจ็กต์ strBu1