Java Programming: อะเรย์และคอลเล็กชั่น

6,278 views

Published on

แนะนำการใช้อะเรย์ของข้อมูลชนิดพื้นฐาน และชนิดคลาส อธิบายการประกาศและสร้างอะเรย์หลายมิติ แนะนำเมธอดที่เกี่ยวข้องกับอะเรย์ อธิบายความหมายของคอลเล็กชั่น แนะนำอินเตอร์เฟสและคลาสต่างๆ ที่อยู่ใน Collection API และการนำไปใช้งาน

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,278
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
268
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Java Programming: อะเรย์และคอลเล็กชั่น

  1. 1. บทท 8 อะเรยและคอลเลกชน (Arrays and Collections) ผศ.ธนศา เครอไวศยวรรณ คณะเทคโนโลย(สารสนเทศ สถาบ,นเทคโนโลย(พระจอมเกล1าเจ1าค2ณทหารลาดกระบ,ง
  2. 2. วตถประสงค  อธบายการประกาศและสรางอะเรยของขอม"ลชนดพ%นฐานและชนดคลาส &  อธบายการก(าหนดค*าเรมตนใหกบสมาชกของอะเรย  อธบายการประกาศและสรางอะเรยหลายมต  แนะน(าการสรางอะเรยสองมตทแต*ละแถวมจ(านวนคอลมนไม*เท*ากน  แนะน(าเมธอดทเกยวของกบอะเรย
  3. 3. วตถประสงค  แนะน7าอนเตอร9เฟสส7าค,ญทอย<=ใน Collection API เช=น Collection, Set,List และ Map  อธบายการน7าคลาสส7าค,ญทอย<=ใน Collection API เช=น HashSet, ArrayList,Vector,LinkedList และ HashMap ไปใช1งาน  แนะน7าอนเตอรเฟส Iterator,ListIterator และ Enumeration
  4. 4. ความหมายของอะเรย  อะเรย9ในภาษาจาวาคอต,วแปรท(EเปFนชนดข1อม<ลแบบอ1างอง ท(สามารถใช1เกHบ E ข1อม<ลชนดเด(ยวก,นได1หลายค=า  ต,วอย=าง • ต,วแปรอะเรย9ทชอ ch (E E • เกHบข1อม<ลชนด char • ม(จ7านวนสมาชก 5 ต,ว • หมายเลขสมาชกต,งแต= 0 ถLง 4 J
  5. 5. ประเภทของอะเรย  ภาษาจาวาแบ=งต,วแปรอะเรย9เปFนสองประเภทคอ • อะเรย9ของข1อม<ลชนดพJนฐาน • อะเรย9ของข1อม<ลชนดคลาส  อะเรย9ของข1อม<ลชนดพJนฐานคออะเรย9ท(Eสามารถใช1เกHบข1อม<ลท(ม(ชนดข1อม<ล E แบบพJนฐานชนดใดชนดหนLEงได1หลายค=า เช=น • อะเรย9ของข1อม<ลชนด int • อะเรย9ของข1อม<ลชนด boolean  อะเรย9ของข1อม<ลชนดคลาสคออะเรย9ทสามารถใช1เกHบข1อม<ลท(EเปFนออปเจHค (E ของคลาสใดๆได1หลายออปเจHค เช=น • อะเรย9ของข1อม<ลชนด String
  6. 6. การประกาศตวแปรอะเรย  ร"ปแบบการประกาศตวแปรอะเรย คลายกบการประกาศตวแปรชนดขอม"ลแบ บอ%นๆ แต*ตวแปรอะเรยจะมเคร%องหมาย [ ] อย"*ดานหนาหร%อดานหลง  ร<ปแบบ [<modifier>] dataType []variableName; หรอ [<modifier>] dataType variableName[];  ตวอย*าง char[] ch; หร%อ char ch[]; Student[] s; หร%อ Student s[];
  7. 7. การสรางอะเรยของขอม"ลชนดพ%&นฐาน  อะเรยในภาษาจาวาจะเป2นต,วแปรแบบอ1างองชนดหนLง (เช=นเด(ยวก,บ E ออป เจHค)  การสรางอะเรยจะสามารถท(าไดโดยการเรยกใชค(าสง new  ร<ปแบบ variableName = new dataType[size];  ต,วอย=าง ch = new char[5];  ส(าหรบการสรางอะเรยของขอม"ลชนดพ%นฐาน ค(าสง new จะจองเน%&อทใน & หน*วยความจ(าส(าหรบเกบค*าของสมาชกของอะเรย ส=วนตวแปรอะเรยจะเกบ ต(าแหน*งอางองไปยงสมาชกของอะเรย
  8. 8. ร<ปแสดงข1อม<ลท(อย<ในอะเรย9 E =
  9. 9. ต,วอย=างโปรแกรมการใช1อะเรย9ข1อม<ลชนดพJนฐาน public class SimpleArrays { public static void main(String args[]) { int []x; x = new int[4]; x[0] = 0; x[1] = 2; x[2] = 4; x[3] = 6; System.out.println("x = "+x); System.out.println("x[0] = "+x[0]); System.out.println("x[1] = "+x[1]); System.out.println("x[2] = "+x[2]); System.out.println("x[3] = "+x[3]); } }
  10. 10. การสรางอะเรยของขอม"ลชนดคลาส  ส(าหรบการสรางอะเรยของขอม"ลชนดคลาส ค(าสง new จะจองเน%&อทในหน*วย ความจ(าส(าหรบเกบค*าของสมาชกของอะเรย ซ5งจะเป2นเพยงแค*ต(าแหน*ง อางองเท*าน&น  ตวอย*าง Student []s; s = new Student[3];
  11. 11. ร<ปแสดงข1อม<ลท(อย<ในอะเรย9 E =
  12. 12. การสร1างออปเจHคของคลาสให1กบสมาชก ,  ด,งน,นจะต1องม(การเร(ยกใช1ค7าส,Eง new อ(ก เพEอสร1างออปเจHคของคลาสให1ก,บ J สมาชกแต=ละต,วของอะเรย9  ต,วอย=าง s[0] = new Student(“1111”,“Thana”,3.0); s[1] = new Student(“2211”,“Somchai”,2.10); s[2] = new Student(“3331”,“Supansa”,3.1);
  13. 13. ร<ปแสดงข1อม<ลท(อย<ในอะเรย9 E =
  14. 14. ต,วอย=างโปรแกรมการใช1อะเรย9ข1อม<ลชนดคลาส public class Student { private String name; public Student(String n) { name = n; } public String getName() { return name; } }
  15. 15. ต,วอย=างโปรแกรมการใช1อะเรย9ข1อม<ลชนดคลาส public class TestClassArrays { public static void main(String args[]) { Student []s = {new Student(“Thana”), new Student(“Somchai”), new Student(“Somsak”)}; for(int i=0; i<s.length; i++) { System.out.print(s[i].getName()+" "); } } }
  16. 16. การก(าหนดค*าเรมตนใหกบสมาชกของอะเรย  ค*าเรมตนของสมาชกของอะเรย จะถ"กก(าหนดใหโดยอตโนมต ซ5งจะมค*าตาม ค*าเรมตนของชนดขอม"ลน&นๆ  เราสามารถสรางอะเรยพรอมกบก(าหนดค*าเรมตนใหกบสมาชกของอะเรยเอง ได  ร<ปแบบ dataType []variableName = {value1,value2,..,valueN};  ตวอย*าง int []x = {4,3,5,1,8}; Student []s = {new Student("1111","Thana",3.0), new Student("2211","Somchai",2.10), new Student("3331","Supansa",3.1)};
  17. 17. การใช1คาส,Eง for เพEออ1างองสมาชกของอะเรย9 7  โดยท,วไปเราจะใช1ค7าส,ง for ในการอ1างองถLงสมาชกของอะเรย9 E E  ต,วอย=างเช=น for(int i = 0; i < 5; i++) { System.out.println(x[i]); } หรอ for(int i = 0; i < x.length; i++) { System.out.println(x[i]); }
  18. 18. Enhanced for  เราย,งสามารถท(จะเข(ยนค7าส,ง for ในร<ปแบบท(เร(ยกว=า enhanced for เพEอ E E E แจกแจงค=าของต,วแปร อะเรย9โดยอ,ตโนม,ต  ต,วอย=างเช=น for(int i : x) { System.out.println(x[i]); }
  19. 19. ต,วอย=างโปรแกรมการใช1ค7าส,ง for E public class ForWithArrays { public static void main(String args[]) { int []x; x = new int[4]; for (int i=0; i<x.length; i++) { x[i] = i*2; } System.out.println("x = "+x); for (int i=0; i<x.length; i++) { System.out.println("x["+i+"] = "+x[i]); } } }
  20. 20. ข1อผดพลาดประเภท ArrayIndexOutOfBoundsException  การอ1างองถLงหมายเลขสมาชกของอะเรย9ท(Eไม=ถ<กต1อง จะท7าให1เกดข1อผด พลาดในตอนร,นโปรแกรมโดยโปรแกรมจะส=งข1อผดพลาด ArrayIndexOutOfBoundsException ออกมาในขณะร,นโปรแกรม  ต,วอย=างเช=น int []x = {4,3,5,1,8}; เปFนค7าส,Eงประกาศและสร1างต,วแปรอะเรย9ทม(จ7านวนสมาชกต,Jงแต=หมายเลข (E 0 ถLง 4 การอ1างองถLงสมาชกต,วอEน เช=น x[5]จะท7าให1เกดข1อผดพลาดใน ตอนร,นโปรแกรม
  21. 21. ต,วอย=างโปรแกรมท(Eจะส=งข1อผดพลาดออกมา public class IncorrectArrays { public static void main(String args[]) { int []x = {4,3,5,1,8}; System.out.println(x[5]); } }
  22. 22. อะเรยหลายมต  เราสามารถทจะประกาศอะเรยมากกว*าหน5งมตได  กรณของอะเรยสองมต มร"ปแบบการประกาศตวแปรดงน& [modifier] dataType [][]variableName; หรอ [modifier] dataType variableName[][];  ต,วอย=าง int [][]x;  ร<ปแบบการสร1างต,วแปรอะเรย9สองมตเปFนด,งน(J variableName = new dataType[row][col];  ต,วอย=าง x = new int[3][4];
  23. 23. อะเรยสองมตทแต*ละแถวมจ(านวนคอลมนต*างกน  การสร1างอะเรยสองมตในภาษาจาวา ไม*จ(าเป2นท(จ(านวนคอลมนของแต=ละ E แถวจะตองเท*ากน  ตวอย*าง int [][]x = new int[3][]; x[0] = new int[4]; x[1] = new int[2]; x[2] = new int[3];
  24. 24. ต,วอย=างโปรแกรมอะเรย9สองมต public class TwoDimensionArrays { public static void main(String args[]) { int x[][] = new int[3][]; x[0] = new int[4]; x[1] = new int[2]; x[2] = new int[3]; for(int i=0; i<x.length; i++) { for(int j=0; j<x[i].length; j++) { x[i][j] = (i+j)*2; } }
  25. 25. ต,วอย=างโปรแกรมอะเรย9สองมต for(int i=0; i<x.length; i++) { for(int j=0; j<x[i].length; j++) { System.out.print(x[i][j]+" "); } System.out.println(); } } } ร<ปแสดงผลล,พธ9ทได1จากการร,นโปรแกรม (E
  26. 26. การหาขนาดของอะเรย  ท2กอะเรย9ในภาษาจาวาจะมคณลกษณะทช%อ length ซ5งจะม(ค=าเท=าก,บ จ(านวนสมาชกท&งหมดของอะเรยน,น J  ตวอย*าง int x[] = new int[3]; • x.length ม(คาเท=าก,บ = 3 int x[][] = new int[3][4]; • x.length ม(คาเท=าก,บ 3 = • x[1].length ม(คาเท=าก,บ 4 =
  27. 27. เมธอดทเกยวของกบอะเรย  ในภาษาจาวา ม(เมธอดหลายเมธอดมร,บพารามเตอร9เข1ามาเป2นอะเรยของ ข1อม<ลชนดต=างๆ  เมธอดในคลาส Arrays ท(เก(Eยวข1องก,บอะเรย9ม(ดงต*อไปน& E • sort() • binarySearch() • fill()
  28. 28. ต,วอย=างโปรแกรม import java.util.Arrays; public class MethodsArrays { public static void main(String args[]) { double d[] = {5.3, 3.56, 0.5, 1.65, 7.8}; Arrays.sort(d); for(int i=0; i<d.length; i++) { System.out.print(d[i]+" "); } System.out.println();
  29. 29. ต,วอย=างโปรแกรม int pos = Arrays.binarySearch(d,1.65); System.out.println("arrays["+pos+"] = 1.65"); Arrays.fill(d,1.0); for(int i=0; i<d.length; i++) { System.out.print(d[i]+" "); } System.out.println(); } } 0.5 1.65 3.56 5.3 7.8 arrays[1] = 1.65 ผลล,พธ9ทได1จากการร,นโปรแกรม (E 1.0 1.0 1.0 1.0 1.0
  30. 30. การค,ดลอกค=าข1อม<ลของสมาชกของอะเรย9  ภาษาจาวาไม=ยอมให1ม(การเปล(Eยนแปลงขนาดของอะเรย แต*ค=าข1อม<ลของ สมาชกของอะเรย9สามารถทจะถ<กคดลอกได โดยใชค(าสง System.arraycopy();
  31. 31. ต,วอย=างโปรแกรม public class CopyArrays { public static void main(String args[]) { String []scr = {"Copy","an","array","from", " source"," to"," destination."}; String []dst = new String[4]; System.arraycopy(scr,3,dst,0,4); for(int i=0; i<dst.length; i++) { System.out.print(dst[i]); } System.out.println(); } } ผลล,พธ9ท(Eได1จากการร,นโปรแกรม from source to destination.
  32. 32. Collection API  คลาสใน Collection API สามารถท(Eจะน7ามาใชเกบขอม"ลทเป2นออปเจคได หลายตว  โครงสร1างข1อม<ลของคลาสใน Collection API จะคลายกบของอะเรย ต*างกน ตรงทขนาดโครงสร1างข1อม<ลของคลาสใน Collection API สามารถท(Eจะถ<ก เปลยนแปลงได
  33. 33. Collection API  Collection API ประกอบไปด1วยอนเตอร9เฟสท(Eส7าค,ญด,งน(J • Collection • Set • List • Map  Collection API ประกอบไปด1วยคลาสท(Eส7าค,ญด,งน(J • HashSet • ArrayList • Vector • LinkedList • HashMap
  34. 34. ร<ปแสดงส=วนประกอบท(Eสาค,ญของ Collection API 7
  35. 35. อนเตอร9เฟส Collection  ม(ค2ณสมบ,ตคอ สามารถท(Eจะระบ2หรอไม=ระบ2ล7าด,บความส7าค,ญของสมาชก และสามารถท(จะก7าหนดให1ค=าข1อม<ลของสมาชกซJ7าก,นหรอไม=กHได1 E  อนเตอร9เฟส Collection มเมธอดทส(าคญดงน& • boolean add(Object element) • boolean remove(Object element) • int size() • boolean isEmpty() • boolean contains(Object element) • Iterator iterator()
  36. 36. อนเตอร9เฟส Set  สบทอดมาจากอนเตอร9เฟส Collection  ค=าข1อม<ลของสมาชกจะไม*สามารถซ&(ากนได1 และล ดบของสมาชกไม=ม( ความส7าค,ญ  คลาสส7าค,ญท(E implement อนเตอร9เฟส Set คอคลาส HashSet
  37. 37. ต,วอย=างโปรแกรม Set import java.util.*; public class SampleSet { public static void main(String args[]) { Set s = new HashSet(); s.add("C#"); s.add("Java"); s.add("Pascal"); System.out.println("The size of this set is "+s.size()); System.out.println("The contents are "+s); System.out.println("Removing C#");
  38. 38. ต,วอย=างโปรแกรม Set s.remove("C#"); System.out.println("Now this set contains C#: "+ s.contains("C#")); s.add("Java"); System.out.println("Now the size is "+s.size()); System.out.println("The contents are "+s); } } ผลล,พธ9ท(Eได1จากการร,นโปรแกรม The size of this set is 3 The contents are [Java, Pascal, C#] Removing C# Now this set contains C#: false Now the size is 2 The contents are [Java, Pascal]
  39. 39. อนเตอร9เฟส List  สบทอดมาจากอนเตอร9เฟส Collection  ค=าข1อม<ลของสมาชกอาจจะสามารถซJ7าก,นได1 และล(าดบของสมาชกม(ความ ส7าค,ญ  อนเตอร9เฟส List ม(เมธอดท(ส7าค,ญท(EเพEมมาจากอนเตอร9เฟส E Collection ดงน& • void add(int index,Object element) • Object remove(int index) • Object get(int index) • void set(int index,Object element) • int indexOf(Object element) • ListIterator listIterator()  คลาสส7าค,ญท(E implement อนเตอร9เฟส List คอคลาส ArrayList, Vector และ LinkedList
  40. 40. ต,วอย=างโปรแกรม List import java.util.*; public class SampleList { public static void main(String args[]) { List l = new LinkedList(); l.add("C#"); l.add("Java"); l.add("Pascal"); System.out.println("The size is "+l.size()); System.out.println("The contents are "+l); System.out.println("The first one is "+l.get(0));
  41. 41. ต,วอย=างโปรแกรม List l.add("Java"); System.out.println("The contents are "+l); System.out.println("The index of Java is "+ l.indexOf("Java")); } } ผลล,พธ9ท(Eได1จากการร,นโปรแกรม The size is 3 The contents are [C#, Java, Pascal] The first one is C# The contents are [C#, Java, Pascal, Java] The index of Java is 1
  42. 42. อนเตอร9เฟส Map  จะม(การเกHบค=าค(ย9ค<=ก,บค=าข1อม<ลของสมาชกเสมอ โดยท(Eคาค(ยจะต1องไม=ซJ7า = 9 ก,น แต=ค=าข1อม<ลของสมาชกสามารถท(EจะซJ7าก,นได1  อนเตอร9เฟส Map ม(เมธอดท(Eส7าค,ญด,งน(J • Object put(Object key,Object value) • Object remove(Object key) • Object get(Object key) • Set entrySet() • Set keySet() • int size()  คลาสส7าค,ญท(E implement อนเตอร9เฟส Map คอคลาส HashMap
  43. 43. ต,วอย=างโปรแกรม Map import java.util.*; public class SampleMap { public static void main(String args[]) { Map m = new HashMap(); m.put("1","C#"); m.put("2","Java"); m.put("3","Pascal"); System.out.println("Removing Pascal"); m.remove("3"); System.out.println("The size is "+m.size()); System.out.println("The first one is "+m.get("1"));
  44. 44. ต,วอย=างโปรแกรม Map m.put("3","Java"); System.out.println("The key of this map are "+ m.keySet()); System.out.println("The contents are "+m.entrySet()); } } ผลล,พธ9ท(Eได1จากการร,นโปรแกรม Removing Pascal The size is 2 The first one is C# The key of this map are [3, 2, 1] The contents are [3=Java, 2=Java, 1=C#]
  45. 45. อนเตอร9เฟส Iterator  เปFนอนเตอร9เฟสท(Eม(ไว1เพEอใช1ในการอ1างถLงข1อม<ลสมาชกประเภท Set โดยม เมธอดทส(าคญดงน& • boolean hasNext() • Object next() • void remove()  ภายในอนเตอร9เฟส Collection จะม(เมธอดท(EชEอ iterator() ซLEงเปFน เมธอดท(จะส=งค=ากล,บเปFน Iterator E
  46. 46. ต,วอย=างโปรแกรม Iterator import java.util.*; public class SampleIterator { public static void main(String args[]) { Set scrSet = new HashSet(); scrSet.add("C#"); scrSet.add("Java"); scrSet.add("Pascal"); Iterator it = scrSet.iterator(); Set dstSet = new HashSet(); for(int i=0; i<scrSet.size(); i++) { if(it.hasNext()) { dstSet.add(it.next()); } } System.out.println(dstSet); ผลล,พธ9ท(Eได1จากการร,นโปรแกรม } [C#, Java, Pascal] }
  47. 47. อนเตอร9เฟส ListIterator  สบทอดมาจากอนเตอร9เฟส Iterator  ใช1ในการอ1างถLงข1อม<ลสมาชกประเภท List  อนเตอร9เฟส ListIterator มเมธอดทส(าคญทเพมมาจาก Iterator ดงน& • boolean hasPrevious() • Object previous() • void add(Object element) • void set(Object element)  ภายในอนเตอร9เฟส List จะม(เมธอดท(ชEอ listIterator() ซLEงเปFน E เมธอดท(จะส=งค=ากล,บเปFน ListIterator E
  48. 48. อนเตอร9เฟส Enumeration  คลายกบอนเตอร9เฟส Iterator  มเมธอดทส(าคญ ดงน& • boolean hasMoreElement() • Object nextElement()
  49. 49. คลาส Vector  เปFนคลาสท(E implements อนเตอร9เฟส List  ม( constructor แบบต=างๆด,งน(J • new Vector() • new Vector(int initialCapacity) • new Vector(int initialCapacity,int capacityIncrement)
  50. 50. ต,วอย=างโปรแกรม Vector import java.util.*; public class SampleEnumeration { public static void main(String args[]) { Vector v = new Vector(); v.add("C#"); v.add("Java"); v.add("Pascal"); Enumeration e = v.elements(); while (e.hasMoreElements()) { System.out.print(e.nextElement()+" "); } } } ผลล,พธ9ทได1จากการร,นโปรแกรม (E C# Java Pascal
  51. 51. การใช1ค7าส,ง for และ Generic E  เราสามารถท(Eจะใช1ค7าส,Eง Genericในการก7าหนดชนดข1อม<ลของอHอบเจกต9ท(E อย<ในคอลเลHกช,Eน =  ต,วอย=างเช=น List<String> myList = new LinkedList<String>();  เราสามารถท(จะใช1ค7าส,ง for E E ในการท(จะแจกแจงค=าของอHอบเจกต9ประเภท E คอลเลHกช,Eนแทนท(จะใช1อนเตอร9เฟส Iterator E  ต,วอย=างเช=น for (String stringList : myList) { System.out.println(stringList); }
  52. 52. ต,วอย=างโปรแกรมการใช1 Generic public class SampleGeneric { public static void main(String args[]) { Set<Integer> scrSet = new HashSet<Integer>(); int[] myInt = {1, 3, 5, 7, 11}; for (int i : myInt) { scrSet.add(i); } for (Integer num : scrSet) { System.out.print(num + " "); } System.out.println(); } }
  53. 53. การใชค(าสง for และ Generic  สบทอดมาจากอนเตอร9เฟส Iterator  ใช1ในการอ1างถLงข1อม<ลสมาชกประเภท List  อนเตอร9เฟส ListIterator มเมธอดทส(าคญทเพมมาจาก Iterator ดงน& • boolean hasPrevious() • Object previous() • void add(Object element) • void set(Object element)  ภายในอนเตอร9เฟส List จะม(เมธอดท(ชEอ listIterator() ซLEงเปFน E เมธอดท(จะส=งค=ากล,บเปFน ListIterator E
  54. 54. สร2ปเนJอหาของบท  อะเรย9ของข1อม<ลชนดพJนฐานจะม(ค=าข1อม<ลเปFนสมาชกของอะเรย9 แต=ส7าหร,บ อะเรย9ของข1อม<ลชนดคลาส สมาชกของอะเรย9จะเปFนต7าแหน=งอ1างองไปย,งค=า ข1อม<ล  ส7าหร,บอะเรย9สองมต จ7านวนคอล,มน9ในแต=ละแถวไม=จ7าเปFนต1องเท=าก,น  ในคลาส Arrays ม(เมธอดส7าค,ญท(เก(Eยวข1องก,บอะเรย9คอ sort(), E binarySearch() และ fill()  เมธอด arraycopy() จากคลาส System ใช1ในการค,ดลอกค=าของ สมาชกของอะเรย9
  55. 55. สร2ปเนJอหาของบท  Collection,Set,List และ Map เปFนอนเตอร9เฟสส7าค,ญท(อย<=ใน E Collection API โดยท(Eอนเตอร9เฟส Set และ List สบทอดมาจาก อนเตอร9เฟส Collection  อนเตอร9เฟส Set จะไม=สามารถม(ค=าข1อม<ลของสมาชกท(EซJ7าก,นได1 และล7าด,บ ของสมาชกไม=ม(ความส7าค,ญ  ส=วนอนเตอร9เฟส List จะสามารถม(ค=าข1อม<ลของสมาชกท(EซJ7าก,นได1 และ ล7าด,บของสมาชกม(ความส7าค,ญ  ส7าหร,บอนเตอร9เฟส Map จะม(การเกHบค=าค(ย9ค<=ก,บค=าข1อม<ลของสมาชก  เราสามารถน7าคลาสท(E implements อนเตอร9เฟสเหล=าน(ไปใช1ในการเกHบ J ข1อม<ลท(เปFนออปเจHคได1หลายต,วคล1ายก,บอะเรย9 แต=สามารถเปล(Eยนแปลง E ขนาดได1
  56. 56. สร2ปเนJอหาของบท  อนเตอร9เฟส Iterator,ListIterator และ Enumeration ใช1ในการ อ1างถLงข1อม<ลสมาชกของคลาสท(อย<=ใน Collection API E  คลาส Vector เปFนคลาสท(Eใช1ในการเกHบกล2=มของออปเจHคของคลาสใดๆโดย ไม=จ7าก,ดจ7านวน ประเภทเด(ยวก,บ List  เราสามารถท(Eใช1 Generic ในการก7าหนดชนดของอHอบเจกต9ท(Eจะใส=ข1อม<ลลงอHอบเจกต9คลาสประเภท คอลเลHกช,Eน  ค7าส,Eง for สามารถท(Eจะใช1ในการแจกแจงข1อม<ลแทนการใช1 Iterator หรอ Enumeration ได1  เราสามารถใช1ค7าส,Eง Genericในการก7าหนดชนดข1อม<ลของอHอบเจกต9ท(Eอย<=ในคอลเลHกช,Eนได1
  57. 57. แบบฝcกห,ด  ข1อท(E 1 • จากโปรแกรมจ7าลองระบบธนาคาร ให1ทดลองปร,บปร2งคลาส Customer โดยการใช1 อะเรย9เพEอก7าหนดให1ม(ค2ณล,กษณะท(สามารถเกHบบ,ญช(ธนาคารได1หลายบ,ญช( E  ข1อท(E 2 • จากโปรแกรมจ7าลองระบบธนาคาร ให1ทดลองเข(ยนคลาสท(ชEอ Bank ท(Eม(ค2ณล,กษณะ E เพEอเกHบข1อม<ลล<กค1า (ออปเจHคชนด Customer) หลายๆคน โดยก7าหนดให1เปFนข1อม<ล แบบ Vector และม(เมธอดในการเพEมล<กค1า และเร(ยกด<ข1อม<ลล<กค1า

×