TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 8: Collection và Generics
• Collections
•
Th tá ớiáđốit dháhtầ t
•
Th
ao
tá
c v
ới
c
á
c
đối
t
ượng
d
an
h
s
á
c
h
t
nào
trong
từng
trường
hợp
cụ
thể
?
3
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
• Các kiểu collection thông dụng
− ArrayList
− SortedList
− Queue
− Stack
−
Hashtable
Hashtable
− StringCollection
−
StringDictionary
tất
cả các lớp còn lại.
− Thêm và xóa
p
hần tử khỏi Arra
y
List rất đơn
g
iản.
p y g
− ArrayList cung cấp 2 phương thức để thêm phần tử:
• Add
• AddRange
5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
• Thêm phần tử :
−
Thêm phầntử dùng phương thứcAdd
Thêm
phần
tử
dùng
ll
.
Add
(
5
0)
;
coll.Add(new object());
50
object
2
3
6
Nhiều
kiểu
dữ
liệu
khác
nhau có thể được lưu
trong ArrayList
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
• Thêm phần tử
−
cuối dãy.
coll.AddRange(anArray);
object[] anotherArray=new object[]{new object(),new
Arra
y
List
()};
7
y ()};
coll.AddRange(anArray);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
• Thêm phần tử
−
ArrayList cung cấpphương thức Insert và InsertRange
ArrayList
cung
cấp
phương
thức
Insert
và
"
Item
"+
i
+"
:
"+
coll[i]);
Kết
quả
là gì ?
8
Console.WriteLine( Item
i
:
coll[i]);
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
• Thêm phần tử
−
ArrayList hỗ trợ gán giá trị cho đốitượng trong
ArrayList
TRUNG TÂM TIN HỌC
Collections
• Xóa phần tử
−
ArrayList hỗ trợ các phương thức xóa phầntử khỏi
ArrayList
hỗ
trợ
các
phương
thức
xóa
phần
tử
khỏi
collection
• Remove
• RemoveAt
• RemoveRange
10
lieu );
// xóa phần tử dùng RemoveAt
coll.RemoveAt(0);
//
óhầ tử dù R R
RemoveAt
//
x
ó
a p
hầ
n
tử
dù
ng
R
emove
R
ange
coll.RemoveRange(0,4);
RemoveRange
11
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
ỗ ầ
• Phương thức h
ỗ
hỗ
trợ
nhiều
cách
duyệt
các
phần
tử
trong
collection
• Dùng chỉ mục phần tử (index)
• Dùng interface IEnumerable và Enumerator
• Dùng cấu trúc foreach
13
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
•
D ệtá hầ tử
•
Console
.
WriteLine(item);
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Collections
• Sắp xếp phần tử
−
ArrayList hỗ trợ phương thứcSortđể sắpxếpcác
ArrayList
hỗ
trợ
phương
thức
Sort
để
sắp
xếp
các
Mỗilầnchỉ truy xuất1phầntử
−
Mỗi
lần
chỉ
truy
xuất
1
phần
tử
16
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Danh sách tuần tự
• Queue
•
Stack
•
Stack
17
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Danh sách tuần tự
ueue q=new
Q
ueue
()
;
q.EnQueue(“Item 1”);
X
Item 1
q
q
q.EnQueue(“Item 2”);
q.EnQueue(“Item 3”);
Console.WriteLine(q.DeQueue());
Item 2
Item 3
q
Console.WriteLine(q.DeQueue());
Item 1
Item 2
19
Item
2
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Danh sách tuần tự
• Tìm phần tử
−
Duyệt Queue
Duyệt
(LIFO)
.
• Thêm phẩn tử vào cuối danh sách
• Lấ
y
p
hần tử cuối ra khỏi danh sách
yp
− Một số thuộc tính và phương thức quan trọng
• Thuộc tính
–– CountCount
• Phương thức
––PopPop
21
––PushPush
–– PeekPeek
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Danh sách tuần tự
• Thêm/ xóa phần tử
St k St k()
X
s
St
ac
k
s=new
St
;
Item 2
Item 3
22
Item
3
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Danh sách tuần tự
• Tìm phần tử
−
DuyệtStack
Duyệt
Stack
− Dùng Pop lấy ra và so sánhÆphần tử không còn trong
Stack
− Tìm phần tử mà không lấy nó ra khỏi Stack: dùng
phương thức Peek
if (s.Peek() is String){
Console.WriteLine(s.Pop());
23
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Dictionaries
• Tập hợp lưu các phần tử có thứ tự theo từng
c
ặp