Upload
mai-linh-nguyen
View
213
Download
0
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());}}