BÁO CÁO CHUYÊN ĐỀ CÔNG NGHỆ PHẦN MỀM Đề tài: Tìm hiểu về Map và Hashtable trong java Giảng viên: Nguyễn Mạnh Sơn Sinh viên: Dương Văn Ba Lớp: L14CNPM... Map là kiểu dữ liệu trừu t
Trang 1BÁO CÁO CHUYÊN ĐỀ CÔNG NGHỆ
PHẦN MỀM
Đề tài: Tìm hiểu về Map và Hashtable trong java
Giảng viên: Nguyễn Mạnh Sơn
Sinh viên: Dương Văn Ba
Lớp: L14CNPM
Trang 2 Map và Hashtable là hai interface và
abstract class thuộc gói java.util
Hai interface và class này được cung cấp
để cho các class khác muốn dùng thì có
thể implements từ nó
Tổng quan về Map và Hashtable
Trang 3 Map là kiểu dữ liệu trừu tượng được sử
dụng để lưu trữ và lấy giá trị dựa vào một khóa duy nhất (Key) một cách hiệu quả
Map quản lý dữ liệu theo dạng (Key,
Value)
Trong đó: Key là khóa, Value là giá trị
Trang 4Nếu trong Map có đã có cặp (Key1, Value1) nào đó
Khi muốn thêm phần tử có khóa trùng với
Key đang tồn tại ví dụ cặp (Key1, Value2) thì value2 sẽ thay thế value1 trước đó
Nếu cố tình đưa vào một Map n cặp (k,v) mà
có cùng k thì size của Map vẫn chỉ tăng
thêm 1
Tìm hiểu về Map
Trang 5 Trong java có một số class đã triển khai Map ví dụ: HashMap, AbstractMap,
Hashtable
Một số phương thức chính mà Map cung cấp:
Int size(), boolean isEmpty(),
boolean containsKey(Object key),
boolean containsValue(Object value),
Tìm hiểu về Map
Trang 6Object get(Object key),
Object put(Object key, Object value), Object remove(Object key),
void putAll(Map m),
Set keySet(),
…
Tìm hiểu về Map
Trang 7Ví dụ
Trang 8 Không giới hạn về số lượng phần tử được thêm vào
Cho phép thêm vào và lấy ra thoải mái
Chỉ cho phép duyệt phần tử thông qua
khóa Key, không cho phép duyệt theo chỉ
số như trong mảng
Cho phép đưa phần tử vào mà cả Key và Value đều là null
Ưu điểm của Map
Trang 9 Do chỉ được duyệt thông qua khóa Key nên làm hạn chế cho việc sắp xếp, tìm kiếm …
Cần nhớ chính xác key trong mỗi lần
duyệt
Nhược điểm của Map
Trang 10Đếm từ trong một file văn bản, cho biết mỗi
từ xuất hiện bao nhiêu lần
Mỗi từ ở đây đóng vai trò là khóa Key còn số lần xuất hiện của từ đó trong file đóng vai
trò là Value
Ví dụ nhỏ về việc sử dụng Map.
Trang 11Chương trình demo
Trang 12 Giả sử
Input: trong data.txt có nội dung
Chương trình demo
Trang 13 Output:
Chương trình demo
Trang 14 Lớp Hashtable lưu giữ các cặp Key/Value trong một hash table Khi sử dụng một
Hashtable, bạn xác định một đối tượng mà được sử dụng như là một Key và value mà bạn muốn liên kết tới Key đó, Key này sau
đó được hash và hash code kết quả được
sử dụng như là chỉ mục, tại đó V được lưu giữ bên trong table đó
Tìm hiểu về Hashtable
Trang 15 Hashtable mở rộng kích thước khi các
phần tử được thêm vào, khi một Hashtable mới bạn có thể chỉ định dung lượng ban
đầu và yếu tố nạp Điều này sẽ làm cho
hashtable tăng kích thước lên
Tìm hiểu về Hashtable
Trang 16 Các phương thức chính của Hashtable:
- void clear(): xóa toàn bộ hash table.
- Object clone(): trả về một bản sao.
- Enumeration elements(): trả về một bản liệt kê
các giá trị được chứa trong hashtable.
- booblean isEmpty();
- int size();
….
Tìm hiểu về Hashtable
Trang 17 Ưu điểm của Hashtable:
- Việc truy cập đến Hashtable là đồng
bộ
do đó tại một thời điểm thì chỉ có
một đối tượng duy nhất được truy cập,
nên giữ liệu được an toàn hơn.
Tìm hiểu về Hashtable
Trang 18 Nhược điểm của Hashtable
trị là “null” Nếu cố tình thì ngoại lệ sẽ được ném ra.
bị chậm hơn.
Tìm hiểu về Hashtable
Trang 19Xin cảm ơn thầy và các bạn
lắng nghe