75. MapEntry Interface trong lập trình Java

Trong lập trình Java, Map.Entry là một giao diện (interface) nằm trong gói java.util. Giao diện Map.Entry đại diện cho một cặp key-value trong một Map. Nó được sử dụng để duyệt qua các cặp key-value trong một Map, đồng thời cung cấp các phương thức để truy cập và thay đổi giá trị của key và value trong cặp này.

Giao diện Map.Entry không thể được triển khai trực tiếp, nhưng nó là một phần của giao diện Map, và một số lớp cụ thể của Map như HashMap, TreeMap, và LinkedHashMap có các lớp nội tuyến (nested classes) triển khai Map.Entry.

Dưới đây là một số phương thức quan trọng của giao diện Map.Entry:

  1. K getKey(): Trả về key của cặp key-value.
  2. V getValue(): Trả về value của cặp key-value.
  3. V setValue(V value): Đặt giá trị mới cho cặp key-value. Phương thức này trả về giá trị cũ của value trước khi thay đổi.

Dưới đây là một ví dụ về cách sử dụng giao diện Map.Entry để duyệt qua các cặp key-value trong một Map:

java
import java.util.Map;
import java.util.HashMap;

public class MapEntryExample {
    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);

        // Duyệt qua các cặp key-value trong Map bằng Map.Entry
        for (Map.Entry<String, Integer> entry : scores.entrySet()) {
            String name = entry.getKey();
            int score = entry.getValue();
            System.out.println(name + " - " + score);
        }
        /* Output:
           Alice - 85
           Bob - 90
           Charlie - 78
        */

        // Đặt giá trị mới cho cặp key-value trong Map
        for (Map.Entry<String, Integer> entry : scores.entrySet()) {
            if (entry.getKey().equals("Bob")) {
                int newScore = entry.getValue() + 5;
                entry.setValue(newScore);
            }
        }

        // In ra các giá trị sau khi thay đổi
        System.out.println("Updated scores:");
        for (Map.Entry<String, Integer> entry : scores.entrySet()) {
            System.out.println(entry.getKey() + " - " + entry.getValue());
        }
        /* Output:
           Alice - 85
           Bob - 95
           Charlie - 78
        */
    }
}

Trong ví dụ trên, chúng ta sử dụng Map.Entry để duyệt qua các cặp key-value trong scores, và sử dụng phương thức getKey()getValue() để truy cập key và value trong mỗi cặp. Bên cạnh đó, chúng ta sử dụng phương thức setValue() để thay đổi giá trị của một cặp key-value.

Leave a Comment

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

Scroll to Top