Map trong Java là gì? Cách dùng Map trong Java đơn giản nhất

HashMap hiện đang được các lập trình viên Java lựa chọn sử dụng, ứng dụng trong việc hỗ trợ tổ chức các dữ liệu trong chương trình. Vì thế, nếu bạn đang tìm hiểu về lập trình hay muốn trở thành một lập trình viên Java chuyên nghiệp thì không thể những kiến thức cơ bản.

Vậy Map trong Java là gì? Cách sử dụng Map trong Java như thế nào. Hãy cùng Mẫu Website 24h tìm hiểu về Map trong Java qua bài viết dưới đây nhé.

Map trong Java là gì?

Map trong trong Java được dùng để lưu trữ và truy xuất các dữ liệu theo cặp khóa (key) và giá trị (value). Mỗi cặp khóa (key) và giá trị (value) được gọi là entry.

Map chỉ chứa các giá trị key duy nhất, không chứa các key trùng lặp.

Khi làm việc với Map trong Java, chúng ta sẽ có hai Interface thường được sử dụng để triển khai một Map đó là: Map() và SortedMap() hoặc chúng ta cũng có thể sử dụng ba lớp có trong Java để triển khai một Map đó là các lớp: HashMap()LinkedHashMap(), và TreeMap().

Map trong Java

Các lớp cài đặt (implements) Map interface là:

  • HashMap không đảm bảo thứ tự các entry được thêm vào.
  • LinkedHashMap đảm bảo thứ tự các entry được thêm vào.
  • TreeMap duy trình thứ tự các phần tử dựa vào bộ so sánh Comparator.
  • EnumMap
  • WeakHashMap
  • TreeMap

Map trong Java

Sức chứa (compacity) mặc định khi khởi tạo map là 2^4 = 16. Kích thước này sẽ tự động tăng gấp đôi mỗi khi thêm phần tử vượt quá kích thước của nó.

Sử dụng Map trong Java

Trong Java, chúng ta cần import gói java.util.map để có thể sử dụng map. Khi đã import gói, dưới đây là cách có thể tạo map.Map trong Java

Trong đoạn code trên, chúng ta đã tạo ra một Map tên là numbers. Chúng ta đã sử dụng class HashMap để triển khai Map interface. Ở đây:

  • Key – Code định danh duy nhất được sử dụng để liên kết từng phần tử (value) trong map
  • Value – các phần tử được liên kết bởi các key trong map

Thao tác với Map trong Java

Thêm phần tử vào Map trong Java

Mỗi phần tử trong Map là các cặp giá trị được lưu trữ theo dạng (key:value), nên việc thêm phần tử vào Map chính là việc ta cập nhật vào Map cặp giá trị (key:value) mới. Để có thể thêm phần tử vào Map ta chỉ cần gọi đến phương thức có sẵn Map.put() và truyền 2 tham số tương ứng: Đầu tiên là tham số ket của các phần tử cần thêm, thứ hai là Value của phần tử cần thêm.

Phương thức Map.put() trả về true nếu việc thêm một phần tử vào trong Map thành công, ngược lại phương thức này sẽ trả về false.

Duyệt các phần tử trong Map

Map Interface có một giao diện con đó là Entry. Bạn có thể truy cập đến Entry bằng cách gọi đến Map.EntryEntry sẽ trả về một một Map theo dạng Set và chuyển đổi các phần tử trong Map thành các phần tử thuộc lớp này. Lúc này ta có thể tận dụng để sử dụng các các phương thức để lấy khóa Key và giá trị Value của Map một cách dễ dàng.Map trong Java

Kết quả:

Map trong Java

Tìm kiếm phần tử trong Map

Việc tìm kiếm một phần tử trong Map được thực hiện khi ta biết giá trị Key của phần tử cần tìm. Sau đó ta cần kiểm tra xem Key của phần tử đang cần tìm có tồn tại trong Map hay không? Nếu như có thì ta sẽ lấy Value dựa theo Key đó.

Phương thức Map.containsKey() sẽ giúp chúng ta kiểm tra xem Key mà ta đang cần tìm kiếm có tồn tại trong Map hay không và phương thức Map.get() sẽ giúp chúng ta lấy ra Value của phần tử cần tìm kiếm dựa vào Key. Cùng theo dõi ví dụ dưới đây để hiểu rõ hơn.

Map trong java
Kết quả:
Set trong Java

Các phương của Map trong Java

Để có thể tận dụng được map trong java một cách trọn vẹn, chúng ta cần nắm bắt được các phương thức của Map. Dưới đây là bảng liệt kê các phương thức thường dùng trong map.

Phương thức Mô tả
put(Object key, Object value) Chèn một cặp phần tử (Key, Value) vào trong Map.
void putAll(Map map) Chèn các phần tử của Map này vào trong một Map khác.
putIfAbsent(K key, V value) Chèn Value được chỉ định với Key được chỉ định vào trong Map nếu nó chưa có trong Map.
remove(Object key) Xóa đi một cặp phần tử trong Map dựa vào Key
boolean remove(Object key, Object value) Xóa đi một cặp phần tử trong Map dựa theo Key và Value.
Set keySet() Chuyển các Key của Map vào trong một Set.
Set<Map.Entry<K,V>> entrySet() Chuyển đổi các phần tử trong Map sang Set bao gồm giá trị Key, Value của Map ban đầu.
void clear() Xóa đi toàn bộ phần tử trong Map.
boolean equals(Object o) So sánh xem một giá trị được chỉ định với Map xem chúng có bằng nhau không?
boolean containsKey(Object key) Trả về True nếu một Key thuộc trong Map, ngược lại sẽ trả về False.
void forEach(BiConsumer<? super K,? super V> action) Duyệt qua từng phần tử có trong một Map, sau khi tất cả phần tử đã được duyệt xong thì sẽ ném ra một ngoại lệ.
get(Object key) Lấy ra giá trị Value dựa theo Key được chỉ định trong Map.
getOrDefault(Object key, V defaultValue) Lấy ra giá trị Value dựa theo Key. Nếu Key không tồn tại trong Map thì sẽ đặt defaultValue cho Key đó.
int hashCode() Trả về giá trị mã băm cho Map.
boolean isEmpty() Kiểm tra xem Map đó có rỗng hay không?
replace(K key, V value) Thay thế một Value mới dựa theo Key trong Map.
boolean replace(K key, V oldValue, V newValue) Thay thế Value cũ oldValue thành một Value mới newValue dựa vào Key trong Map.
Collection values() Chuyển đổi các Value trong Map vào Collection.
int size() Lấy ra số lượng phần tử trong Map.

Lời kết

Đến đây bạn đã hiểu Map trong Java là gì hay chưa. Đây là kiến thức căn bản giúp bạn có nền tảng để học các kiến thức khác và trở thành một lập trình viên Java chuyên nghiệp. Chúc các bạn thành công, mọi thắc mắc hãy liên hệ với Mẫu Website 24h – Dịch vụ thiết kế web hàng đầu Việt Nam.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *