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
:
K getKey()
: Trả về key của cặp key-value.V getValue()
: Trả về value của cặp key-value.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()
và 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.