Trong bài này, chúng ta sẽ tìm hiểu về Map interface trong Java và các hàm của nó.
Map interface của collections framework trong Java cung cấp các chức năng của cấu trúc dữ liệu map.
Nó triển khai Collection interface.
Nội dung chính
1. Cách làm việc của map
Trong Java, các phần tử của Map được lưu trữ trong các cặp key/ value. Key là các giá trị duy nhất được liên kết với các value riêng lẻ .
Một map không thể chứa các key trùng lặp. Mỗi key được liên kết với một giá trị duy nhất.
Chúng ta có thể truy cập và sửa đổi các value bằng cách sử dụng các key được liên kết với chúng.
Trong sơ đồ trên, chúng ta có các value: United States, Brazil, và Spain. Chúng ta có các key tương ứng là: us, br và es.
Bây giờ, chúng ta có thể truy cập các value đó bằng các key tương ứng của chúng.
Lưu ý: Map interface duy trì 3 bộ khác nhau:
- Bộ key
- Bộ value
- Bộ liên kết key/value (map).
Do đó chúng ta có thể truy cập các key, value và liên kết riêng lẻ.
2. Các class triển khai Map
Vì Map là một interface, chúng ta không thể tạo các đối tượng từ đó.
Để sử dụng các chức năng của Map interface, chúng ta có thể sử dụng các class sau:
Các class này được định nghĩa collections framework chúng và triển khai Map interface.
3. Các interface mở rộng của Map
Map interface cũng được mở rộng bởi những subinterface sau:
- SortedMap
- NavigableMap
- ConcurrentMap
4. Sử dụng Map như thế nào?
Trong Java, chúng ta phải import gói java.util.Map để sử dụng Map. Khi chúng ta đã import gói, sau đây là cách chúng ta có thể tạo map.
// Map implementation using HashMap
Map<Key, Value> numbers = new HashMap<>();
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
5. Các hàm của map
Map interface bao gồm tất cả các hàm của Collection interface. Đó là bởi vì Collection một interface cha của Map.
Bên cạnh các hàm có sẵn trong Collection Interface, Map interface cũng bao gồm các hàm sau:
- put (K, V) – Chèn liên kết của key K và value V vào map. Nếu key đã có sẵn, value mới sẽ thay thế value cũ.
- putAll () – Chèn tất cả các mục từ map đã chỉ định vào map hiện tại.
- putIfAbsent (K,V) – Chèn liên kết nếu key K chưa được liên kết với value V.
- get (K) – Trả về value được liên kết với key K được chỉ định. Nếu không tìm thấy key, nó sẽ trả về null.
- getOrDefault (K, defaultValue) – Trả về value được liên kết với key k được chỉ định. Nếu không tìm thấy key, nó sẽ trả về value mặc định.
- containsKey (K) – Kiểm tra xem key được chỉ định K đã có trong map chưa.
- containsValue (V) – Kiểm tra xem value v được chỉ định đã có trong map chưa.
- replace (K, V) – Thay thế value của key K với value v được chỉ định mới.
- replace (K, oldValue, newValue) – Thay thế value của key K với value mới là newValue nếu key K được liên kết với value oldValue.
- remove (K) – Xóa mục được đại diện bởi key K khỏi map.
- remove (K, V) – Xóa mục có key K liên kết với value V khỏi map.
- keyset () – Trả về một tập hợp gồm tất cả các key có trong map.
- value () – Trả về tập hợp tất gồm cả các value có trong map.
- entryset () – Trả về tập hợp gồm tất cả cặp key / value có trong map.
6. Triển khai map interface
1. Triển khai class HashMap
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
import java.util.Map;
import java.util.HashMap;
class Main {
public static void main(String[] args) {
// Creating a map using the HashMap
Map<String, Integer> numbers = new HashMap<>();
// Insert elements to the map
numbers.put("One", 1);
numbers.put("Two", 2);
System.out.println("Map: " + numbers);
// Access keys of the map
System.out.println("Keys: " + numbers.keySet());
// Access values of the map
System.out.println("Values: " + numbers.values());
// Access entries of the map
System.out.println("Entries: " + numbers.entrySet());
// Remove Elements from the map
int value = numbers.remove("Two");
System.out.println("Removed Value: " + value);
}
}
Kết quả
Map: {One=1, Two=2}
Keys: [One, Two]
Values: [1, 2]
Entries: [One=1, Two=2]
Removed Value: 2
Để tìm hiểu thêm về HashMap, hãy truy cập HashMap trong Java.
2. Triển khai class TreeMap
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
import java.util.Map;
import java.util.TreeMap;
class Main {
public static void main(String[] args) {
// Creating Map using TreeMap
Map<String, Integer> values = new TreeMap<>();
// Insert elements to map
values.put("Second", 2);
values.put("First", 1);
System.out.println("Map using TreeMap: " + values);
// Replacing the values
values.replace("First", 11);
values.replace("Second", 22);
System.out.println("New Map: " + values);
// Remove elements from the map
int removedValue = values.remove("First");
System.out.println("Removed Value: " + removedValue);
}
}
Kết quả
Map using TreeMap: {First=1, Second=2}
New Map: {First=11, Second=22}
Removed Value: 11
Để tìm hiểu thêm về TreeMap, hãy truy cập TreeMap trong Java.