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
   21   22   23   24   25   26   27   28   29   30   31