Trong lập trình Java, Map là một giao diện (interface) nằm trong gói java.util. Map đại diện cho một tập hợp các cặp key-value, trong đó mỗi key là duy nhất và không thể trùng lặp. Map không giữ thứ tự của các cặp key-value, có nghĩa là việc duyệt qua Map không đảm bảo theo thứ tự mà các cặp key-value được thêm vào.
Map cho phép bạn thêm, xóa, truy xuất và tìm kiếm các cặp key-value bằng key. Key được sử dụng để xác định một cách duy nhất mỗi cặp key-value trong Map. Khi bạn thêm một cặp key-value mới với một key đã tồn tại trong Map, cặp key-value cũ sẽ bị thay thế bằng cặp key-value mới.
Dưới đây là một số phương thức quan trọng của giao diện Map:
void put(K key, V value): Thêm một cặp key-value vàoMap.V get(Object key): Trả về giá trị tương ứng với key đã cho trongMap, hoặcnullnếu key không tồn tại.boolean containsKey(Object key): Kiểm tra xemMapcó chứa key đã cho hay không.boolean containsValue(Object value): Kiểm tra xemMapcó chứa giá trị đã cho hay không.V remove(Object key): Xóa cặp key-value tương ứng với key đã cho khỏiMap, và trả về giá trị của key đó.int size(): Trả về số lượng cặp key-value trongMap.boolean isEmpty(): Kiểm tra xemMapcó rỗng không.void clear(): Xóa toàn bộ cặp key-value khỏiMap.Set<K> keySet(): Trả về một tập hợp chứa tất cả các key trongMap.Collection<V> values(): Trả về một tập hợp chứa tất cả các giá trị trongMap.Set<Map.Entry<K, V>> entrySet(): Trả về một tập hợp chứa tất cả các cặp key-value dưới dạng đối tượngMap.Entry.
Các lớp cụ thể trong Java như HashMap, TreeMap, và LinkedHashMap đều triển khai giao diện Map. Mỗi lớp cụ thể này cung cấp một cách cụ thể để triển khai các phương thức của Map, nhưng tất cả đều cho phép bạn quản lý các cặp key-value trong ứng dụng của mình.
Dưới đây là ví dụ về cách sử dụng giao diện Map và lớp cụ thể HashMap:
java
import java.util.Map;
import java.util.HashMap;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new HashMap<>();
// Thêm các cặp key-value vào Map
scores.put("Alice", 85);
scores.put("Bob", 90);
scores.put("Charlie", 78);
// Truy xuất giá trị theo key
int aliceScore = scores.get("Alice");
System.out.println("Alice's score: " + aliceScore); // Output: Alice's score: 85
// Kiểm tra xem Map có chứa key cụ thể hay không
boolean containsBob = scores.containsKey("Bob");
System.out.println("Contains Bob: " + containsBob); // Output: Contains Bob: true
// Kiểm tra xem Map có chứa giá trị cụ thể hay không
boolean containsScore90 = scores.containsValue(90);
System.out.println("Contains score 90: " + containsScore90); // Output: Contains score 90: true
// Xóa cặp key-value khỏi Map
int removedScore = scores.remove("Charlie");
System.out.println("Removed score: " + removedScore); // Output: Removed score: 78
// Kích thước của Map
System.out.println("Size of Map: " + scores.size()); // Output: Size of Map: 2
// Kiểm tra xem Map có rỗng không
System.out.println("Is Map empty: " + scores.isEmpty()); // Output: Is Map empty: false
// In ra tất cả các key trong Map
for (String name : scores.keySet()) {
System.out.println(name);
}
/* Output:
Alice
Bob
*/
// In ra tất cả các giá trị trong Map
for (int score : scores.values()) {
System.out.println(score);
}
/* Output:
85
90
*/
// Xóa toàn bộ cặp key-value trong Map
scores.clear();
System.out.println("After clearing: " + scores); // Output: After clearing: {}
}
}
Map là một giao diện hữu ích trong Java, cho phép bạn quản lý các cặp key-value trong ứng dụng của mình. Bạn có thể sử dụng các lớp cụ thể triển khai nó như HashMap, TreeMap, và LinkedHashMap để làm việc với các cặp key-value trong ứng dụng Java của mình.