Java Collection Framework

́ ̀ ̉

I. Tông quat vê Java Collection Framework

́

́ ́ Cac Collection (Collection, Set, List, Map, ArrayList, Vector, Hashtable,  ượ ế ộ ̣ c đăt trong goi java.util. JCF à m t ki n

ễ ợ Hashset, HashMap). Cac collection đ trúc h p nh t đ  bi u di n và thao tác trên các collection.

ấ ể ể ̀ ̀ ́ ̉

1. Cac thanh phân cua Java Collection

(cid:0) ể ệ ấ ủ ể ế Interfaces: Là các giao ti p th  hi n tính ch t c a các ki u collection

ư khác nhau nh  List, Set, Map.

(cid:0) ẵ ượ ớ ặ Implementations: Là các l p collection có s n đ c cài đ t các collection

interfaces.

ụ ắ ể ử ng th c tĩnh đ  x  lý trên collection, ví d : s p

ứ ấ

(cid:0) Algorithms: Là các ph ế x p danh sách, tìm ph n t

ươ ầ ử ớ  l n nh t...

ộ ố ợ ủ

2. M t s  l

ậ i ích c a Collections Framework ờ

ườ ươ

ễ ở ộ

ệ ử ụ ế ươ

(cid:0) Gi m th i gian l p trình ả (cid:0) Tăng c ệ ng hi u năng ch ng trình (cid:0) D  m  r ng các collection m i ớ (cid:0) Khuy n khích vi c s  d ng l ạ

i mã ch ng trình

́ ́ ́ 3. Cac thao tac chinh trên collection

ầ ử ư ấ Collection  cung c p các thao tác chính nh  thêm/xoá/tìm ph n t ... boolean

add(Object element);

(cid:0) boolean add(Object element);

(cid:0) boolean remove(Object element);

(cid:0) boolean contains(Object element);

(cid:0) int size();

(cid:0) boolean isEmpty();

(cid:0) void clear();

(cid:0) Object[] toArray(); ặ

ế ớ ố ổ N u l p cài đ t Collection không mu n h  tr  các thao tác làm thay đ i

ư ạ ệ ỗ ợ ể Unsupported­s

collection nh  add, remove, clear... nó có th  tung ra ngo i l OperationException.

́ ̀ ́ ̀ ̣

II. Chi tiêt vê cac cai đăt (implements) collection

1. List

́

̀

̀

́ ư

̣ ấ ̣ nó cung c p thêm các

ộ ng th c đ  x  lý collection ki u danh sách (Danh sách là m t collection

ể ỉ ố ứ ể ử ầ ử ượ ế  đ

c x p theo ch  s ). ̀ ươ ơ ̣ ̉ ̣ ̣ ng trinh đ n gian nhât minh hoa cho viêc s  dung danh

Sau đây la môt ch ́ ̣ ử ́ ́ ́ ́ ́ ̀ ̀ ́ ́ ̣ ̣

List la môt interface dung ch a danh sach liên tuc,  ươ ph ớ v i các ph n t ̀ ́ sach băng cach dung giao diên List, chu y cach khai bao môt biên danh sach:  List list = new ArrayList();

1.1. ArrayList ộ ấ ợ ủ

ệ ả ả ị ầ ử i c a vi c dùng m ng là ph i xác đ nh tr ướ ố ượ c s  l ng ph n t

M t b t l trong m ng:ả ế ướ ẽ ẫ ế ế ả ỏ ­  N u khai báo kích th ộ c m ng quá nh  thì s  d n đ n thi u b

nh . ớ

ế ạ ớ ộ

­  N u khai báo quá l n thì l ầ ử  ­  Các ph n t ắ ớ   i lãng phí b  nh . ả ượ ể ộ ể ữ ệ    trong m ng ph i có cùng ki u d  li u. c đi m này (ArrayList là m t ki u c nh

ộ ả ụ ượ ầ ử ỡ ả ẽ ự ả ể ượ thêm vào v t quá kích c  m ng, m ng s  t

ỡ ArrayList đã kh c ph c đ ế ả m ng đ ng. N u các ph n t ộ đ ng tăng kích c ).

ươ ả ạ ộ ̣ ng trình qu n lý nhân viên t i m t phòng ban nào đó trong

Vi du 1: Ch ộ ́ m t công ty:

ố ượ ể ổ

 S  l

ng nhân viên trong phòng ban có th  thay đ i. ướ ụ ả

 Kích th

ử ụ c không c  đ nh.(không s  d ng m ng trong ví d  này).

ố ị ẽ ử ụ Thay vào đó ta s  s  d ng ArrayList.

̣ ̉

1.1.1. ả

ố ượ Đăc điêm: ộ Qu n lý m t dãy các đ i t ng.

ể ả ướ ầ Có th  tăng, gi m kích th c theo nhu c u.

ươ ứ ườ ấ Cung c p các ph ng th c cho các thao tác thông th ng: chèn, xoá

ầ ử ,...

ph n t ừ ở

ố ượ ể ng có ki u T T  java 5.0 tr  đi ArrayList là class generic ậ ArrayList  ; // T p các đ i t

́ ̀ ́ ơ ơ

1.1.2. S  đô l p ArrayList trong goi java.util.*

́

1.1.3. Khai bao ArrayList ArrayList   v  = new  ArrayList ();

ị ể ArrayList : Đ nh ki u cho danh sách ngay khi khai báo

ế bi n danh sách.

̀ ̃ ́ ́ ư ̉ ̣ ử

́ ́ ̀ ̀ ̀ ́ ́ ơ ̣ ̣ ̣ ̀ L u ýư :  Trên chi la môt trong nh ng cach khai bao thông th ươ ng hay s ́ dung nhât. Thât ra l p ArrayList con nhiêu ham thiêt lâp co tham sô.

́ ươ ́ ư ̣

ng th c trong ArrayList ệ ướ ấ ờ ủ c hi n th i c a ArrayList

̣ // khai báo 1 danh sách m ng các string; Ví dụ: ArrayList  str = new ArrayList < String >();                     1.1.4. Môt sô ph int size(); // L y kích th ́ Vi du:

ầ ử ấ ộ ̉ ̣ trong ArrayList theo chi muc

̣ Object get(arg0); // L y m t ph n t ́ Vi du:

ầ ử vào ArrayList;

̣ bool  add(arg0); // Thêm ph n t ́ Vi du:

̣ ̣ ̉

̣ ́ ́ bool  remove(); // Xoa item tai môt chi sô ́ Vi du:

1.2. LinkedList

̣ ̉

ề ầ ố

ỗ ợ ớ ử ệ ế ả ộ ớ

1.2.1. Đăc điêm ế Danh sách liên k t 2 chi u. H  tr  thao tác trên đ u và cu i danh sách. t ki m b  nh  so v i m ng trong các bài toán x  lý  LinkedList giúp ti

danh sách.

ầ ả ộ ồ Khi chèn/xoá m t node trên LinkedList, không ph i dãn/d n các ph n

ử ư t ệ ả ầ ự .

nh  trên m ng. ậ ̀ ́ ́ ơ ơ Vi c truy nh p trên LinkedList luôn ph i tu n t 1.2.2. S  đô l p LinkedList trong goi java.util.*

́

1.2.3. Khai bao ArrayList LinkedList< TypeObject>  list = new LinkedList();

ị ể LinkedList< TypeObject>: Đ nh ki u cho danh sách ngay khi khai báo

ế

̣

ả bi n danh sách. ́ Vi du:  // khai báo 1 danh sách m ng các string;

́ ươ ̣ LinkedList list = new LinkedList(); ́ ư 1.2.4. Môt sô ph ng th c trong LinkedList

ươ

ươ

ng pháp mà nó k  th a, l p  ủ

ị ậ

ộ ố ế ừ ớ LinkedList đ nh nghĩa m t s   Ngoài các ph ể ữ ng pháp h u ích c a riêng c a mình đ  thao tác và truy c p vào danh sách.

ầ ử

vào đ u danh sách, s  d ng

ử ụ addFirst (); đ  ể

đ  k t thúc, s  d ng

ph To add elements to the start of the list, use addFirst( ) ; to add elements to the end,  ầ use addLast( ) . Đ  thêm ph n t ử ụ addLast ()... ế ố ể ế thêm các y u t

̣ ́ Vi du:

́

́ể

ử

ử

̣ ̉ ̣

ầ Đ  lây item đ u tiên, s  dung

getFirst (), item cuôi mang, s  dung

getLast( ),

́

̣ ử

̉ ̣

lây item theo chi muc s  dung

get(int index) .

̣

́ Vi du:

́

́

̉ ̉ ̉

Đ  xoa item đ u tiên cua mang, s  d ng

ử ụ string removeFirst(); đ  xoa bo

́

̀

ầ ử ố

̉ ̣

ph n t

cu i cùng, g i

ọ string removeLast (), xoa theo chi muc dung

string

remove(int index).

̣

́ Vi du:

́ ̉ ử ử ̣ ̣ ̣ Đê s a gia tri cho môt item, s  dung string set(int index, String

element)

̣ ́ Vi du:

2. Set

ệ ệ ạ ộ ầ ử ặ không trùng l p.

Giao di n này đ i di n cho m t nhóm các ph n t ử ỗ ợ ể ậ Collection, h  tr  các thao tác x  lý trên collection ki u t p

ế ừ ừ Set k  th a t ợ ộ ậ ầ ử ả ợ h p (M t t p h p yêu c u các ph n t

ầ ươ ứ ượ ươ ứ ế ừ ừ ph i không đ ng th c riêng ngoài các ph ặ c trùng l p). ng th c k  th a t Set không có thêm ph

̀ ̀ ́ Collection. ́ ươ ́ ơ D i đây la mô hinh phân câp l p trong java.util.*:

2.1. SortedSet

ể SortedSet k  th a t ượ ỗ ợ ư ả ộ ế ừ ừ c. Các đ i t

ầ ử   ậ  có ặ ng đ a vào trong m t SortedSet ph i cài đ t  ả ậ ộ

Set, nó h  tr  thao tác trên t p h p các ph n t ố ượ th  so sánh đ ặ ớ ế giao ti p Comparable ho c l p cài đ t SortedSet ph i nh n m t  ể ủ ố ượ Comparator trên ki u c a đ i t ặ ng đó.

ộ ố ươ ứ ủ

2.1.1. M t s  ph

ng th c c a SortedSet

ầ ử ầ ầ ử ố ỏ ớ ấ ấ

• Object first(); // l y ph n t • Object last(); // l y ph n t

ấ  đ u tiên (nh  nh t) ấ  cu i cùng (l n nh t)

ộ ậ ấ

• SortedSet subSet(Object e1, Object e2); // l y m t t p các ph n t

ầ ử

ừ ả ớ e1 t

́

ằ n m trong kho ng t ệ

ượ

̣

TreeSet th c hi n giao di n

i e2. ̃ ư ệ Set, l u tr  theo dang cây.  ư

́

́

ự ̀

ng đ ̀

săp xêp tăng dân..

Truy c p và thu h i khá nhanh, làm cho

́ ượ Cac đôi t c  ộ ở TreeSet tr  thanh m t

́

ư

ượ ắ

ế

̉

ng l n thông tin đ

c s p x p co kha năng

ọ ́

ữ ố ượ ́

̣

ệ ờ ự l a ch n tuy t v i khi l u tr  s  l ́ tìm kiêm môt cach nhanh chong.  ́

̀

́

̀

̃

̣ ượ

̣ ̣

Sau đây la môt sô ham thiêt lâp đ

c đinh nghia trong

TreeSet:

́

́

́ ơ

̣ ̣ ̉

TreeSet ()  TreeSet (Collection c )  TreeSet (Comparator comp )  TreeSet (SortedSet ss ) Vi du: Khai bao môt TreeSet v i TypeObject kiêu String.

2.2. HashSet

ể ư

HashSet h  tr  b i ́ ̀ ̃ ̣ duy nh tấ , nghia ̃ ữ và  cượ  l u trư

ữ cac iteḿ ỗ ợ ở  m tộ  b ngả  băm đ  l u tr ̀ ầ ử đ ỗ la cac item trong HashSet se không trung lăp. M i ph n t truy xu tấ  thông qua các mã băm c a nóủ .

ế ầ ượ ở H u h t các function trong HashSet đ ấ c cung c p b i các

̀ superclasses la AbstractCollection và AbstractSet.

ở ̣

2.2.1. Kh i tao HashSet

̀ ấ ố

ạ   ớ L p HashSet cung c p b n constructor . Ba constructor đâu tiên t o ́ ́ ̃ ́ ́ ̣ ́ ơ ra cac thiêt lâp rông v i cac size khac nhau:

ị t l p ban đ u cho các ph n t ầ ử

ế ậ c thi ộ ủ ướ ặ ị

̀ ̃ ̣ ̣ ̣

́ ượ ́ ơ public HashSet() public HashSet(int initialCapacity) public HashSet(int initialCapacity, int loadFactor) ầ N u không xác đ nh,  kích th c kích th ̃ ̀ ́ ng lên gâp đôi so v i luc tr ế ữ ẽ ượ ư l u tr  s  đ ượ l dung l

ướ c m c đ nh c a m t HashMap. Khi dung  ́ ̀ ơ ng măc đinh đa đây thi khi thêm môt item m i vao, HashSet se tăng  ́ ́ ươ c khi thêm item đo. ̀ ́ ́ ̀ ́ ́ ́ Khi chung ta khai bao HashSet, thi nên dung câu truc khai bao sau:

́ ̀ ́ ́ ̣ ̉ ̣ Set set = new HashSet(); ̀ Muc đich cua viêc khai bao nay la khi chung ta cân chuyên

́ ́ ́ ̉ ử ươ ư ư ̣ ̣ ̉ set sang  ̃ ́ ng th c co săn

̀ ́ ́ dang khac nh  TreeSet, chung ta co thê s  dung cac ph trong Set interface.

́ ư ộ ho t đ ng nh  m t hàm sao chép, no sao chép

các ph n t Constructor th  t ầ ử ừ ộ  t

̣ ứ ư ạ ộ  m t collection khac.́ public HashSet(Collection col) ́ Vi du:

́ ươ ̣ ̉

2.2.2. Môt sô ph

́ ư ̀ ̀ ử ̉ ̣ ̣

̣ ng th c cua HashSet Đê thêm môt item vao HashSet, s  dung ham add(): public boolean add(Object element) ́ Vi du:

ử ̉ ̣ ̣

̣ Đê thêm môt collection, s  dung addAll(): public boolean addAll(Collection c) ́ Vi du:

́ ử ̉ ̣ ̣

Đê xoa môt item, s  dung remove(): public boolean remove(Object element)

̣ ́ Vi du:

́ ̀

́ ́ ̉

ạ ộ ư

ươ ướ Xoa nhiêu item: public boolean removeAll(Collection c) Xoa tât ca: public void clear() ng th c ́ Ph ng ng theo h ư retainAll () ho t đ ng gi ng nh  removeAll (), nh ng ư   ố ượ ạ c l i:

2.3. LinkedHashSet

́ ̀ ́ ươ ự ư T ng t ́  HashSet nh ng co kem theo danh sach liên kêt

3. Map

̀ ̀ ́ ơ ư ̣ ̉ ̉ ̣ ́ ̀ ̉ ơ  điên cô. L p nay la môt

̀ ̀ ư ượ ̣ ̣ ̣ ng nên cân đ

̃ ̃ ̀ ̣ ự ́ ̀ ̉ ư c thay thê băng môt giao diên(interface). Giao diên  ợ ơ ̉ ư ̣ ̣ ̣

́ ́ ̀ ́ ̉ ̣ ̣ ̣ c

̃ ̀ ượ ư ̣

̀ ̀ ́ ́ ́ ́ ̀ ̀  Collection interface ma đ ́ ư ̣

́ ̀ ̉ ̣ ̉ ̉

́ ́ ư ượ ươ ̣ ̣ ̀ Map la môt interface dung đê thay thê cho l p t ́ ́ ượ ơ l p tr u t ̃ Map đinh nghia môt s  hô tr  c  ban đê l u tr  môt căp key­value sao cho  ́ ́ ượ môi key co thê anh xa đên môt gia tri duy nhât, va cac key(khoa) không đ ̃ c đinh nghia  trung nhau. Map không extend t ́ ́ riêng, va la root cho môt nhanh phân câp khac (giông nh  Collection). Co 4  triên khai (implementation) cu thê cua Map đo la: HashMap, WeakHashMap,  TreeMap, và Hashtable. ̀ Sau đây la môt sô ph ̃ c đinh ngia trong Map: ng th c đ

Map.Entry:

ữ ệ ấ Map cung c p 3 cách view d  li u:

• View các khoá:

ả ề

 Set keySet(); // Tr  v  các khoá

• View các giá tr : ị

ả ề

ị  Collection values(); // Tr  v  các giá tr ị ặ • View các c p khoá­giá tr

ả ề ặ ị  Set entrySet(); // Tr  v  các c p khoá­giá tr

ể ả ộ ể c k t qu  là m t collection, ta có th  dùng iterator đ

Sau khi nh n đ ệ duy t các ph n t ậ ượ ế ầ ử ủ  c a nó.

3.1. HashMap

̀ ́ ̣ HashMap la l p implement giao diên Map. Cac item(key­value) trong

́ ơ ượ HashMap không đ

ở ̣

ầ ố ộ ́ ́ c săp xêp. 3.1.1. Kh i tao HashMap ̉ ạ Có b n constructor đê t o ra m t HashMap. Ba constructor đ u tiên cho

̃ ạ ộ phép t o ra m t HashMap rông (empty HashMap):

̀ ́ ́ ́ ̣ ̣ ̣ ̣ ̣

̣ ̣ public HashMap() public HashMap(int initialCapacity) public HashMap(int initialCapacity, float loadFactor) ́ ư ư ư Constructor th  t  hoat đông nh  môt ham thiêt lâp sao chep, no tao ra  ́ ̀ ́ ơ ư  môt Map khac: môt HashMap m i t

́ ươ ́ ư public HashMap(Map map) 3.1.2. Cac ph ng th c trong HashMap

̀ ́ ơ ử ̣ ̣

̣ Thêm môt item m i vao HashMap (key­value), s  dung put(): public Object put(Object key, Object value) ́ Vi du:

ư ̣ Thêm t ́ ̀  môt Map khac:

́ ̣ ̉

̣ Xoa môt item khoi HashMap: public Object remove(Object key) ́ Vi du:

́ ́ ́ ̉

́ ư ̣ ̀  HashMap:

̣ Xoa tât ca cac item trong HashMap: public void clear() Lây môt item t public Object get(Object key) ́ Vi du:

3.2. TreeMap

́ ́ ư ́ ơ TreeMap la l p implement Map Interface. TreeMap ch a cac item v i

́ ̀ ́ ượ ̣ ̣ ̉ cac key đ ́ ươ i dang môt cây cân băng, cây đo đen.

ở ̣

́ ́ ư ̉ ̀ ́ ơ ́ c săp xêp d 3.2.1. Kh i tao TreeMap: public TreeMap() public TreeMap(Map map) public TreeMap(Comparator comp) public TreeMap(SortedMap map) ươ 3.2.2. Cac ph ng th c cua TreeMap

3.3. LinkedHashMap

́ ử ̣ ng t

́ ́ ̀ . Tuy nhiên,

́ ơ ̣ ̣ ̃ ự ư ươ ư  nh  HashMap nh ng co s  dung danh  LinkedHashMap cung t ́ ́ ́ ́ ́ ư ự ơ ượ c liên kêt v i nhau va co th  t sach liên kêt, cac item đ ơ LinkedHashMap truy câp item châm h n so v i HashMap.

́ ́ ̃ ự

III. S  khac nhau giua cac Collection

̀

1. List, Set va Map ệ

ấ ạ ấ ̉

́ Giao di n này cung c p method đê chèn và xoa cac item t ượ ̣

ộ ố ̉ ̣ ̉ ́ ́ ể ộ i m t đi m b t  ầ ử ế  trong  c truy câp và tìm ki m các ph n t ́ ́ ư . Không gi ng nh  các b , danh sach co thê

́ ́ ̀ ư ỳ k  trong danh sách, cac item đ danh sách theo chi muc (index). ch a cac item trung nhau.

ể ậ ầ ử ử ợ Set h  tr  các thao tác x  lý trên collection ki u t p h p, các ph n t

ượ ỗ ợ ả trong Set ph i không đ

ầ ử ượ ạ ấ ả Map cung c p các thao tác x  lý trên các b ng ánh x , các ph n t đ c

̃ ượ ư c trùng nhau. ử c có 2 khoá trùng nhau. ư l u tr  theo khoá và không đ

́ ̉ ̉

2. Cac triên khai(implement) cua List

́ ́ ̀ ̀ ́ ơ ̣

ư ế ố

́ ́ ủ ế Co 2 l p implement giao diên List, đo la ArrayList va LinkedList. Không gi ng nh  ArrayList,  LinkedList là danh sách liên k t kép cung   vào đ u và k t thúc c a danh sách,

̀ ộ ế ượ ử ụ ế ợ ầ ộ ̉ ̣ ầ ử ấ c p cac method chèn, xoa m t ph n t ́ danh sách liên k t đ

́ ơ ̣ ̣

́ ỉ ố ấ ỳ ầ ả ậ

c s  d ng co thê la m t hàng đ i hoăc ngăn x p. ́ ơ Trong viêc lookup ArrayList truy câp nhanh h n LinkedList. Đôi v i  LinkedList, muôn truy c p vào item hay ch  s  b t k  yêu c u ph i đi qua  ề nhi u nút.

ườ ớ Thêm và xoá các ph n t

̀ ầ ử ề trong LinkedList th ụ ộ ơ ng nhanh h n so v i  ướ ủ c c a collection

ị ArrayList. Tuy nhiên, đi u này con ph  thu c vào kích th ỉ ố và v  trí các ch  s .

́ ̉ ̉

3. Cac triên khai(implement) cua Set

̀

3.1. HashSet va TreeSet

́ ượ c

. ́ săp xêp trât t

ứ ự

ầ ế ố ẽ ượ  s  đ ự ự  t ́ c xêp theo th  t   ặ ằ  nhiên ho c b ng cách

ế c s p x p, các y u t ế c s p x p theo trình t ở ạ ạ i luc kh i t o.

HashSet implement Set interface. Cac item trong HashSet không đ ́ ̣ ự ộ ậ ượ ắ TreeSet là m t t p đ ế ố ượ ắ  đ ị ̀ tăng d n. Các y u t ́ ở so sánh b i các quy đ nh t 3.2. LinkedHashSet va HashSet

̀ ̀ ́ ư

Cung giông nh  ArrayList va LinkedList, LinkedHashSet va HashSet  ộ ứ ế ch  LinkedHashSet duy trì m t danh sách liên k t kép có ch a các

ứ ự ầ ủ ̃ ở ỗ khác  hashCode và th  t ban đ u c a các item.

́ ̉ ̉

4. Cac triên khai(implement) cua Map

̀

4.1. HashMap va Hashtable

ự ữ ệ ế ậ ồ S  khác nhau gi a 2 cái là vi c truy nh p đ n HashTable là đ ng

ớ ộ b (Synchronized) trong khi v i HashMap thì không.

ỉ ể ồ Synchronized

ở ộ ể ế ộ ồ

ộ ộ  đây có nghĩa là ch  có m t lu ng có th  modify m t  ờ ạ i m t đi m trong cùng m t th i gian. N u có m t lu ng  ề ố ế

ộ ượ ả ợ ể ố ượ ả ẽ ồ c quy n  ả ng trong khi các lu ng kia s  ph i đ i đ  nh

HashTable t khác nào mu n update trên HashTable đó thì nó ph i chi m đ ể ki m soát trên đ i t khóa.

ồ ề ở ồ

ự ộ ồ ỉ

ế ể ữ ẹ ữ ệ HashTable là lu ng an toàn(thread safe) b i khi có nhi u lu ng truy  ậ nh p đ n m t HashTable thì ch  có m t lu ng th c thi update sau khi đã  khóa đ  gi ộ  toàn v n d  li u.

ồ ậ

ố ồ

ạ ệ ẽ ạ ộ ắ ế ắ

ồ ị

ẽ ự ề ế ư ơ

̃ ề HashMap không an toàn khi có nhi u lu ng truy nh p vào HashMap và  ữ ệ ộ m t trong các lu ng đó c  update d  li u và sau đó nó s  tung ra m t  ử ụ  (Exception). Chúng ta s  d ng HashMap n u b n ch c ch n  ngo i l ẽ ở ậ ằ r ng HashMap s  không b  truy nh p b i nhi u lu ng. Tuy HashMap  ồ ả không ph i là lu ng an toàn nh ng chính vì th  nó s  th c thi nhanh h n  so v i HashTable. ̣ ự ệ ư t n a là HashMap cho phép có value là null còn

Môt s  khác bi HashTable thì không.

ờ ậ ườ Chính vì các lý do trên, bây gi các l p trình viên th ử ụ ng s  d ng

̀ HashMap. 4.2. TreeMap va HashMap

ỏ ệ

́ ̀ ả ằ

ự ự  t ́ ấ ặ ở ̉ ̣ ầ c xêp tăng d n theo trinh t c cung c p khi kh i tao. Cac item

ượ ́ ả đ m b o r ng cac item trong no s  đ ́ ́ nhiên cua cac khoa, ho c do so sánh đ ̀ trong HashMap thi không đ

ụ ế ậ ộ ơ ớ ự TreeMap là cây Đ ­Đen cây d a trên giao di n SortedMap. TreeMap  ́ ẽ ượ   ượ ́ ́ c săp xêp. Tìm ki m m t m c trong TreeMap là ch m h n so v i HashMap.

̀

4.3. LinkedHashMap va HashMap

ự ệ ơ ả S  khác bi

ầ ử t c  b n gi a HashMap và LinkedHashMap là   chèn các ph n t

ứ ế ộ ầ ủ ứ ự . LinkedHashMap duy trì   ban đ u c a

ữ ậ ự LinkedHashMap duy trì tr t t m t danh sách liên k t kép có ch a các hashCode và th  t các item.