74.Map Interface trong lập trình Java

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:

  1. void put(K key, V value): Thêm một cặp key-value vào Map.
  2. V get(Object key): Trả về giá trị tương ứng với key đã cho trong Map, hoặc null nếu key không tồn tại.
  3. boolean containsKey(Object key): Kiểm tra xem Map có chứa key đã cho hay không.
  4. boolean containsValue(Object value): Kiểm tra xem Map có chứa giá trị đã cho hay không.
  5. V remove(Object key): Xóa cặp key-value tương ứng với key đã cho khỏi Map, và trả về giá trị của key đó.
  6. int size(): Trả về số lượng cặp key-value trong Map.
  7. boolean isEmpty(): Kiểm tra xem Map có rỗng không.
  8. void clear(): Xóa toàn bộ cặp key-value khỏi Map.
  9. Set<K> keySet(): Trả về một tập hợp chứa tất cả các key trong Map.
  10. Collection<V> values(): Trả về một tập hợp chứa tất cả các giá trị trong Map.
  11. 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ượng Map.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.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top