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ặcnull
nếu key không tồn tại.boolean containsKey(Object key)
: Kiểm tra xemMap
có chứa key đã cho hay không.boolean containsValue(Object value)
: Kiểm tra xemMap
có 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 xemMap
có 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.