Tổng quan ArrayListArrayList là lớp có kích thước có thể thay đổi Có thể lưu trữ các phần tử có kiểu khác nhau ArrayList cho phép xác định được kích thước của tập hợp thông qua thuộc
Trang 1Bài thuyết trình
Tìm hiểu các lớp ArrayList, Vector, List
Sinh viên thực hiện:
Trần Văn Đức
Vũ Hùng Phong
GVHD: Phạm Thị Kim Ngoan
Trang 3LỚP A RRAYLIST
Trang 4Tổng quan ArrayList
ArrayList là lớp có kích thước có thể thay đổi
Có thể lưu trữ các phần tử có kiểu khác nhau
ArrayList cho phép xác định được kích thước của tập hợp thông qua thuộc tính
Capacity
Có thể thêm, sửa, xóa các phần tử mảng trong khi chương trình đang thực thi
Các phần tử ArrayList được truy cập thông qua vị trí chỉ số, bắt đầu được đánh từ chỉ
số 0
Trang 5Cách khởi tạo ArrayList
Khai báo thư viện: #using System.Collections;
Cú pháp khởi tạo:
Ví dụ:
ArrayList arr = new ArrayList();
ArrayList Ten_arraylist = new ArrayList();
Trang 8Các phương thức xử lý
Clear(): xóa tất cả các phần tử khỏi mảng
Ten_arraylist.Clear();
Clone(): tạo một bản sao của ArrayList
RemoveRange(): xóa một khoảng phần tử từ ArrayList
TrimToSize(): thiết lập khả năng thực tế của số lượng các phần tử trong ArrayList
Trang 9Các thuộc tính của ArrayList
Capacity: dùng để thiết lập hoặc lấy số lượng phần tử mà mảng có thể chứa.
Count: lấy kích thước thực tế của mảng
IsFixedSize: chỉ ra kích thước của mảng có đặt cố định hay không Nếu cố định thì
giá trị là true, ngược lại là false
IsReadOnly: chỉ ra mảng có thiết lập chế độ read-only hay không Nếu có thì giá trị là
true, ngược lại là false
Trang 10Ưu, nhược điểm
Trang 11Ưu, nhược điểm
Trang 12LỚP VECTOR
Trang 13Lớp Vector
Vector trong C++ là một đối tượng dung để chứa đối tượng khác, và các đối tượng được chứa này được lưu trữ một cách liên tiếp trong vector Số lượng phần tử trong vector có thể thay đổi trong suốt quá trình thực hiện chương trình
Trang 14Cách khởi tạo một vector
Khai báo thư viện: #include <vector>
Trang 15Cách khởi tạo một vector
Tạo vector bằng cách copy từ một vector khác:
Trang 16Các phương thức xử lý
push_back(): thêm một giá trị vào cuối vector
pop_back(): xóa phần tử ở cuối vector
size(): trả về số phần tử của vector
max_size(): số lượng phần tử tối đa mà vector có thể chứa
resize(): thay đổi lại kích thước vector
capacity(): trả về kích thước không gian lưu trữ vector
Trang 17Các phương thức xử lý
insert(): chèn phần tử vào vị trí cho trước
clear(): xóa toàn bộ phần tử của vector
swap(): hoán đổi hai vector
at(): trả về giá trị phần tử thứ i
front(): truy cập phần tử đầu tiên
Trang 18Các phương thức xử lý
back(): truy cập phần tử cuối cùng
empty(): kiểm tra vector có rỗng
begin(): Trả về vị trí phần tử đầu tiên
end(): Trả về vị trí phần tử cuối cùng
Trang 19Ưu, nhược điểm
Ưu điểm:
• Có thể tăng, giảm kích thước
• Truy xuất trực tiếp đến phần tử thông qua toán tử []
• Có thể khai báo với kiểu dữ liệu bất kỳ
• Chèn hoặc xóa phần tử ở vị trí cuối hiệu quả
Trang 20Ưu, nhược điểm
Nhược điểm:
• Xóa, thêm phần tử vào vị trí bất kỳ gặp nhiều khó khăn
• Không hỗ trợ hàm sort()
Trang 21LỚP LIST
Trang 22Lớp List
List là dãy các phần tử được thêm hay xóa một cách liên tiếp List container được thực thi như danh sách liên kết kép
Trang 23Cách khởi tạo một list
Khai báo thư viện: #include <list>
Trang 24Cách khởi tạo một list
Trang 25Các phương thức xử lý
push_back(): thêm phần tử vào vị trí cuối
push_front(): thêm phần tử vào vị trí đầu
pop_front(): xóa phần tử ở vị trí đầu
pop_back(): xóa phần tử ở vị trí cuối
clear(): xóa toàn bộ list
begin(), rend(): truy cập tới vị trí đầu tiên của list
Trang 26Các phương thức xử lý
end(), rbegin(): truy cập tới vị trí cuối của list
insert(): chèn phần tử vào vị trí cho trước
sort(): sắp xếp danh sách
merge(): trộn danh sách
size(): trả về kích thước danh sách
empty(): kiểm tra danh sách có rỗng
Trang 27Ưu, nhược điểm
Ưu điểm:
• Khắc phục hạn chế của mảng tĩnh
• Quản lý việc chèn, thêm xóa phần tử một cách dễ dàng
• Có thể khai báo với kiểu dữ liệu bất kỳ
Trang 28Ưu, nhược điểm
Nhược điểm:
• Không thể truy xuất đến phần tử trực tiếp, ngẫu nhiên
• Việc tìm kiếm phần tử rất chậm do cấu trúc xây dựng tương tự danh sách liên kết đơn
Trang 29Chương trình Demo
Trang 31Vector, List