好的!下面是关于 Java 中 Map.Entry 的详解,包括含义、常用方法、实际用途与代码示例,适合初学者和实际项目中参考。


🔍 Java 中的 Map.Entry 含义及方法详解


✅ 一、Map.Entry 是什么?

Map.Entry<K, V> 是 Map 接口的一个内部接口Map 的静态内部类),代表Map 中的一个键值对(key-value pair)对象

🧠 举例:

假设你有一个 Map:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 3);
map.put("banana", 5);

那么 Map.Entry<String, Integer> 可以表示其中一个键值对,如:"apple" = 3


📘 二、如何获取 Map.Entry?

通过 map.entrySet() 方法:

Set<Map.Entry<String, Integer>> entrySet = map.entrySet();

你可以使用 for-each 循环遍历每一个 Entry

for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}

🧩 三、常用方法说明

方法说明
getKey()获取键(Key)
getValue()获取值(Value)
setValue(V value)设置当前 Entry 的值(会影响原 Map)
equals(Object o)比较两个 Entry 是否相等(键和值都相等)
hashCode()返回键值对的哈希码

🧪 四、代码示例演练

1️⃣ 遍历 Map 所有键值对:

Map<String, String> map = new HashMap<>();
map.put("A", "Apple");
map.put("B", "Banana");

for (Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " = " + entry.getValue());
}

2️⃣ 修改值(使用 setValue()):

for (Map.Entry<String, String> entry : map.entrySet()) {
    if ("B".equals(entry.getKey())) {
        entry.setValue("Blueberry"); // 直接更新 Map 中的值
    }
}
System.out.println(map); // 输出:{A=Apple, B=Blueberry}

💡 五、为什么使用 Map.Entry

  • 比单独用 keySet() 更高效(避免再次调用 get()
  • 在遍历过程中可以直接修改 value
  • 便于使用 lambda 表达式和流处理

🚀 六、与 Java 8 Stream 的结合示例

map.entrySet().stream()
    .filter(e -> e.getKey().startsWith("A"))
    .forEach(e -> System.out.println(e.getKey() + ": " + e.getValue()));

🔚 七、小结

特性说明
是 Map 的内部接口Map.Entry<K,V> 表示一个键值对
通常用于遍历常通过 map.entrySet() 获取所有 entry
可修改值setValue() 会直接影响 Map 中的值
实用性强在 for-each 和 Stream 中都非常常用