10
Java Collection API Các Collection (Set, List, Map, ArrayList, Vector, HashTable, HashSet, HashMap) được đặt trong gói java.util là một kiến trúc hợp nhất để biểu diễn và thao tác trên các nhóm đối tượng. Lợi ích của Collection Framework: Giảm bớt thời gian lập trình. Tăng cường hiệu năng chương trình. Dễ mở rộng các collection mới. Khuyến khích sử dụng lại mã của chương trình. Các giao diện (interfaces) và các các lớp sưu tập (Collection class) Giao diện List định nghĩa một sưu tập các phần tử Object có thể dẫn hướng. Giao diện Set định nghĩa một sưu tập không có phần tử trùng lặp. Giao diện Map định nghĩa một sưu tập các cặp khóa-giá trị. Giao diện (interface) ==> Triển khai thực hiện (implementations). List ==> ArrayList, Vector. Set ==> HashSet, TreeSet. Map ==> HashMap. Các thao tác trên Collection.

Java Collection API

Embed Size (px)

DESCRIPTION

collection for java

Citation preview

Java Collection APICc Collection (Set, List, Map, ArrayList, Vector, HashTable, HashSet, HashMap) c t trong gi java.util l mt kin trc hp nht biu din v thao tc trn cc nhm i tng.Li ch ca Collection Framework: Gim bt thi gian lp trnh. Tng cng hiu nng chng trnh. D m rng cc collection mi. Khuyn khch s dng li m ca chng trnh.Cc giao din (interfaces) v cc cc lp su tp (Collection class)Giao din List nh ngha mt su tp cc phn t Object c th dn hng.Giao din Set nh ngha mt su tp khng c phn t trng lp.Giao din Map nh ngha mt su tp cc cp kha-gi tr.Giao din (interface)==>Trin khai thc hin (implementations).List==> ArrayList, Vector.Set==>HashSet, TreeSet.Map==>HashMap.Cc thao tc trn Collection.Cc phng thc m t kch thc ca collection (nhsize()visEmpty()).Cc phng thc m t ni dung ca collection (nhcontains()vcontainsAll()).Cc phng thc h tr thao tc v ni dung ca collection (nhadd(),remove()vclear()).Cc phng thc cho php bn chuyn i mt collection thnh mt mng (nhtoArray()).Mt phng thc cho php bn nhn c mt trnh vng lp (iterator) trn mng cc phn t (iterator()).1/ ListGiao din List l phn m rng ca Collection Interface. N nh ngha tp hp cc d liu c sp xp v cho php cc phn t trng lp c thm vo.Giao din List s dng index cho vic sp xp cc phn t trong khi lu tr n trong danh sch (list). List cung cp cho chng ta mt vi phng thc sau truy cp vo cc phn t:add (Object o):thm phn t vo List.add (int index, Object o):thm phn t vo v ch r v tr trong ListaddAll (int index, Collection c): thm mt ton b phn t ca mt collection v ch r v tr bt u.get (int index):ly phn t ti v tr c ch r.set (int index, Object o):thay th phn t trong list c ch r v tr.remove (int index):xa phn t trong list ti v tr index.remove (Object o):xa phn t trong list c ch r tn.subList ( int start, int end):phng thc ny tr v kiu List cha tt c cc phn t m n ly c bt u t start v kt thc ti end. Ti thng dng phng thc ny to ra List miV d:public static voidmain(String[] args) {// TODO code application logic hereList list =newArrayList();//Thm cc phn t vo listlist.add(A);list.add(B);list.add(C);list.add(7);list.add(8);list.add(9);System.out.println(list); //in ra [A, B, C, 7, 8, 9]//thm phn t O ti v tr 0.list.add(0,O);System.out.println(list); //in ra [O, A, B, C, 7, 8, 9]//thm M vo v tr Olist.set(0,M);System.out.println(list); //in ra [M, A, B, C, 7, 8, 9].System.out.println(list.get(1)); //in ra phn t A//xa phn t M ti v tr 0.list.remove(0);System.out.println(list); //in ra [A, B, C, 7, 8, 9].}2/ ArrayListVic s dng mng (array) c mt vi nhc im m cc lp trnh vin thng gp phi nh sau:Nu khai bo kch thc mng qu nh th s dn n thiu b nh khi lu tr.Nu khai bo ln th tha b nh (qu lng ph).Cc phn t trong mng li c cng kiu d liu.ArrayList trnh nhng nhc im ny. ArrayList l mt mng ng. Nu cc phn t thm vo vt qua kch c mng, th mng s t ng tng kch c. T Java 5.0 tr i ArrayList lag mt lp generic ArrayList .Vy th khi no chng ta dng n???ArrayList nn dng khi c nhu cu truy cp cc phn t ca list theo th t ngu nhin. V d truy cp phn t th 1, ri n th 5, ri quay li th 3.Cc phng thc khi to ca lp ny:ArrayList()ArrayList(Collectionc)ArrayList(int initialCapacity)Mt vi phng thc c bn:ArrayList tha k tt c cc phng thc ca giao din List.add( E object )thm phn t vo v tr cui cng ca list.trimToSize()ct kch thc ca ArrayList v kch thc hin ti ca ArrayList.clear()xa ton b phn t trong list.contain()tr v gi tr true nu list c cha phn t c ch r.size()tr v s lng phn t trong list.V d:public static voidmain(String[] args) {List objList =newArrayList();System.out.println(objList.size());//s in ra s 0.objList.add(A);objList.add(B);objList.add(C);objList.add(D);objList.add(E);objList.add(F);System.out.println(objList.size()); //s in ra s 6. v lc ny c 6 phn t thm vo.System.out.println(objList.contains(A)); //s in ra trueSystem.out.println(hy khm ph thm nh);}3/ VectorLp vector tng t nh ArrayList v n cng thc thi cc mng ng. Lp vector lu mng cc i tng v kch thc ca mng ny c th tng hoc gim. Chng ta c th truy cp cc phn t ca Vector bng cch s dng v tr ca phn t .S khc nhau gia Vector v ArrayList l cc phng thc ca Vector dng c ch ng b (synchronised) v thread-safe. Cho nn Vector thng chy chm, cc phng thc ca ArrayList chy nhanh hn.Cc phng thc khi to ca Vector l:Vector()Vector(Collection c)Vector(int initialCapacity)Vector(int initialCapacity, int capacityIncrement)Cc phng thc c bn ca lp ny:addElement(Object obj)phng thc ny thm phn t vo v tr cui cng ca Vector v kch thc ca Vector s tng ln 1.insertElementAt(Object obj, int index)chn mt phn t ti mt v tr xc nh.setElementAt(Object obj, int index)t gi tr cho mt phn t ti mt v trtoArray()phng thc ny tr v mt mng cha tt c cc phn t trong Vector.elementAt(int pos) ly mt i tng c lu tr c xc nh bi v tr.removeElement(Object obj)xa mt phn t xut hin u tin trong Vector c gi tr bng vi Object.V d:public static voidmain(String[] args) {Vector objVec =newVector();objVec.addElement(new Integer(1));objVec.addElement(new Integer(2));objVec.addElement(new Integer(3));objVec.addElement(new Integer(4));System.out.println(objVec); // [1, 2, 3, 4]System.out.println(objVec.capacity()); // 10System.out.println(objVec.size()); // 4objVec.removeElement(3);System.out.println(objVec); // [1, 2, 4]}4/ LinkedListLinkedList l mt danh sch lin kt hai chiu. Vic truy cp cc phn t phi theo tun t. Cc phn t trong linkedlist c lu tr nh l nhng link ring bit. N cung cp cho chng ta mt danh sch d lin lin kt vi nhau. Nhn hnh sau:

Khi c mt phn t bt k b remove: Ti removeBobnh:

Cc phng thc khi to ca LinkedList:LinkedList()LinkedList(Collection c)Cc phng thc c bn:ngoi nhng phng thc m n k tha t lp cha th n cn c mt vi phng thc ring rt c ch.addFirst(Object obj)Thm phn t vo v tr u danh sch.addLast(Object obj)Thm phn t vo v tr cui danh sch.getFirst()Ly phn t u tin trong danh sch.getLast()Ly phn t cui trong danh sch.removeFirst()Xa phn t u tin trong danh sch.removeLast()Xa phn t cui trong danh sch.V d:publicstaticvoidmain(String[]args){LinkedListlink=newLinkedList();link.add(a);link.add(b);link.add(newInteger(10));System.out.println(Thecontentsofarrayis+link);System.out.println(Thesizeofanlinkedlistis+link.size());link.addFirst(newInteger(20));System.out.println(Thecontentsofarrayis+link);System.out.println(Thesizeofanlinkedlistis+link.size());link.addLast(c);System.out.println(Thecontentsofarrayis+link);System.out.println(Thesizeofanlinkedlistis+link.size());link.add(2,j);System.out.println(Thecontentsofarrayis+link);System.out.println(Thesizeofanlinkedlistis+link.size());link.add(1,t);System.out.println(Thecontentsofarrayis+link);System.out.println(Thesizeofanlinkedlistis+link.size());link.remove(3);System.out.println(Thecontentsofarrayis+link);System.out.println(Thesizeofanlinkedlistis+link.size());}}