Map Interface
Trong java, map được sử dụng để lưu trữ và truy xuất dữ liệu theo cặp khóa (key) và giá trị (value). Mỗi cặp key và 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.
Các lớp cài đặt (implements) Map interface là HashMap, LinkedHashMap and TreeMap.
- 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.
Sức chứa (compacity) mặc định khi khởi tạo map là 24 = 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ó.
Các phương thức của Map interface
Phương thức | Mô tả |
void clear() | Gỡ bỏ tất cả cặp key/value từ Map đang gọi |
boolean containsKey(Object key) | Trả về true nếu Map đang gọi chứa k như là một key. Nếu không là false |
boolean containsValue(Object v) | Trả về true nếu Map đang gọi chứa v như là một value. Nếu không là false |
boolean equals(Object obj) | Trả về true nếu obj là một Map và chứa cùng các Entry. Nếu không là false. |
Object get(Object key) | Trả về value mà liên kết với key |
int hashCode() | Trả về hash code cho Map đang gọi |
boolean isEmpty() | Trả về true nếu Map đang gọi là trống, nếu không là false |
Object put(Object key, Object value) | Đặt một entry vào Map đang gọi, ghi đè bất kỳ value trước mà liên kết với key. Với key và value tương ứng là k và v. Trả về null nếu key đã không tồn tại. Nếu không thì, value trước mà liên kết với key được trả về |
void putAll(Map map) | Đặt tất cả entry từ m vào trong Map này |
Object remove(Object key) | Gỡ bỏ entry mà có khóa là key được chỉ định. |
int size() | Trả về số các cặp key/value trong Map |
Collection values( ) | Trả về một tập hợp chứa các value trong Map. Phương thức này cung cấp một collection-view của các value trong Map |
Set keySet() | Nó được sử dụng để trả đối tượng Set có chứa tất cả các keys. |
Set entrySet() | Nó được sử dụng để trả lại đối tượng Set có chứa tất cả các keys và values. |
Map.Entry Interface
Entry là một interface con của Map. Vì vậy, chúng ta được truy cập nó bằng tên Map.Entry. Nó cung cấp các phương pháp để truy xuất các key và value.
Interface java.util.Map.Entry được định nghĩa như sau:
public interface Map<K,V> { interface Entry<K,V> { } }
Các phương thức của Map.Entry interface
Phương thức | Mô tả |
Object getKey() | Được dùng để lấy key. |
Object getValue() | Được sử dụng để lấy value. |
Ví dụ sử dụng Map
package com.gpcoder.collection.map; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; public class MapExample { public static void main(String args[]) { // init map Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "Basic java"); map.put(2, "OOP"); map.put(3, "Collection"); // show map using method keySet() for (Integer key : map.keySet()) { String value = map.get(key); System.out.println(key + " = " + value); } System.out.println("---"); // show map using method keySet() for (Entry<Integer, String> entry : map.entrySet()) { Integer key = entry.getKey(); String value = entry.getValue(); System.out.println(key + " = " + value); } } }
Kết quả thực thi chương trình trên:
1 = Basic java 2 = OOP 3 = Collection --- 1 = Basic java 2 = OOP 3 = Collection