Map 接口中Set<Map.Entry<K, V>> entrySet()方法介绍

在Java中,Set<Map.Entry<K, V>> entrySet() 是 Map 接口中的一个方法,它返回一个包含映射中所包含的映射的 Set 视图。这个集合是由 Map.Entry 元素组成的,每个 Map.Entry 代表一个键值对。通过这个方法,你可以遍历 Map 中的所有键值对,而不需要直接访问 Map 的键(Key)或值(Value)集合。

下面是一个关于如何使用 entrySet() 方法的介绍和示例代码:

使用介绍

遍历Map中的元素:使用 entrySet() 可以方便地遍历 Map 中的所有元素。你可以通过迭代返回的 Set 集合,然后访问每个 Map.Entry 的键和值。

修改Map的元素:虽然 entrySet() 返回的集合是一个视图,但你可以通过迭代器(Iterator)的 remove() 方法来删除元素,这将会从原 Map 中删除对应的键值对。然而,你不能通过集合的 add() 或 addAll() 方法来添加元素,因为这将会抛出 ConcurrentModificationException 异常。

读取但不修改:如果你只是想遍历 Map 而不进行修改,使用 entrySet() 是非常方便的。但请注意,如果 Map 在迭代过程中被其他线程修改(并且没有适当的同步),那么可能会抛出 ConcurrentModificationException。

示例代码

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class EntrySetExample {
    public static void main(String[] args) {
        // 创建一个HashMap
        Map<String, Integer> map = new HashMap<>();
        map.put("Apple", 100);
        map.put("Banana", 200);
        map.put("Cherry", 150);

        // 使用entrySet()遍历Map
        Set<Entry<String, Integer>> entrySet = map.entrySet();
        for (Entry<String, Integer> entry : entrySet) {
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
        }

        // 示例:通过迭代器删除元素(注意,这里只是演示如何操作,并非最佳实践)
        // 假设我们要删除键为"Banana"的条目
        Iterator<Entry<String, Integer>> iterator = entrySet.iterator();
        while (iterator.hasNext()) {
            Entry<String, Integer> entry = iterator.next();
            if ("Banana".equals(entry.getKey())) {
                iterator.remove(); // 调用迭代器的remove方法,从Map中删除该元素
            }
        }

        // 打印修改后的Map
        System.out.println(map);
    }
}

在这个例子中,我们首先创建了一个 HashMap 并添加了一些键值对。然后,我们使用 entrySet() 方法遍历这个 Map,并打印出每个键值对。接下来,我们通过迭代器的方式删除了键为 “Banana” 的键值对,并展示了修改后的 Map。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值