You are on page 1of 6

Collection (từ java 2 trở lên): là một đối tượng biểu diễn 1

nhóm đối tượng khác.

 Cung cấp cấu trúc dữ liệu giải thuật.

List<E> Set<E> Map<K,V>


ArrayList HashSet HashMap
Vector TreeSet TreeMap
-Can duplicate -Can not -Can not
-using index duplicate duplicate with
-disorder(k theo -No index key
tt) -HashSet is -Acess by key
(vector is disorder -HashMap is
threadsafe) -TreeSet is order disorder with key
ArrayList is not -TreeMap is
threadsafe order with key

Với một collection chúng ta sẽ đi theo 4 thao tác cơ bản:


- Thêm (add)
- Sửa (update)
- Xóa (delete)
- Tìm kiếm, duyệt (search)

List:

ArrayList và Vector, về cơ bản trong phạm vi về core OOP thì


chúng giống hệt nhau, chỉ khác biệt duy nhất, vector có cơ
chế đồng bộ, còn ArrayList thì không.
Add, Add(Index, object), addAll(collection ), addAll(index,
collection).

Update: ar.set(index, object);

Delete:

Ar.remove(index): index bắt buộc phải 0<=index < ar.size()


nếu index vượt qua size thì báo lỗi.  trả về giá trị tại vị trí
index trong collection.

Ar.remove(object): nếu object này tồn tại thì nó sẽ xóa bỏ


phần tử đầu tiên trùng với object mà nó tìm thấy và khi đó
kết quả của method sẽ trả về true.

Còn nếu không có phần tử object trong collection thì nó


không xóa gì hết, tuy nhiên kết quả của method remove sẽ
trả về false.

- Ar.removeall( c ) : xóa bỏ toàn bộ các phần tử của ar


mà có trong c .. Nếu ar thay đổi ( có xóa ít nhất một
phần tử )thì kết quả của method nó sẽ trả về true ,
còn nếu ar không thay ( không xóa bất kì phần tử nào
)đổi thì nó sẽ trả về false .
- Ar.retainALL(i) : ngược với removeALL . xóa bỏ toàn
bộ các phần tử của ar mà không nằm tròn C . Tương
tự như vậy , nếu như mà ar thay đổi thì sẽ trả về true ,
còn nếu không thay đổi thì sẽ trả về false .
Search :

-sout ( array list )

For ( object obj , av )

For ( i=0 ; I < av,site ();I++)

Ar.get(i);

Interator + for

+while

Bài tập : cho 1 collection có chứa toàn bộ các phần tử là


nguyên

Yêu cầu 1 : sort tất cả các phần tử theo thứ tự tăng dần.

Buble sort , interchange Tìm hiểu collection.sort

2. sort tất cả các phần tử là số nguyên tố theo thứ tự giảm


dần

Dùng mọi thuật toán , cố gắng viết ít nhất 2 đến 3 thuật toán

3. cho collection đảo ngược tất cả các phần tử là số chẵn ,


còn các phần tử là số lẻ thì giữ nguyên

*
Với f2 tính và trả về tổng các phần tử là số nguyên tố :

Ngoài ra yêu cầu làm các bài tập trong mục bài tập làm thêm
trên cmshn.

Khi nào thì dùng Collections.sort (ar);

Các phần tử trong ar phải được khởi tạo một class mà class
này được implement từ interface Comparable và override lên
method compareTo.

Interface Comparable là cho phép chúng ta định nghĩa được


thứ tự ( độ lớn ) giữa các phần tử .\

Nếu chúng ta muốn sort không theo đúng thứ mà đối tượng
đó đã được định nghĩa ( ta tự định nghĩa ) hoặc collection có
chứa hơn 1 loại đối tượng , mà 1 trong các đối tượng đó ,
không thể viết lại định nghĩa về độ lớn ( so sánh các phần tử )

Public final class Integer extends Number implements


Comparable {

Với những yêu cầu như trên thì khi sort chúng ta cần truyền
cho nó một đối tượng, mà đối tượng này được khởi tạo một
class và class đó phải được implements từ interface
Comparator và override lên method compare
ArraList chứa cả số nguyên và String

1-Sort với yêu câu : String ( Tăng ) , Integer (giảm )

Hoàn toàn tương tự :

Cho collection có chưa String và Double

Sort collection theo thứ tự Double tăng , String giảm

2- cho collection chứa Integer và Double

a. Sort Integer ( giảm ) double tăng


b. Sort không quan tâm đến kiểu dữ liệu mà quan tâm đến
giá trị , nhưng nếu bằng nhau cùng giá trị nguyên thì cho
kiểu Integer đứng trước
2, 2.3,3 ,3.3,4,5,6,7,7.2,10,10.0,11,11.5

Dùng anonymous class + object :

HASHSET
//BTVN tim hiểu addAll , update delete, search của HashSet ,
TreeSet , tương tự đối với HashMap và TreeMap

You might also like