请问HashMap添加数据后他的EntrySet是在哪里调用的呀
1条回答 默认 最新
关注【以下回答由 GPT 生成】
EntrySet在HashMap中的调用位置是在entrySet()方法中。该方法返回一个包含存储在该映射中的键值对的Set视图。
下面是一些相关的代码片段:
public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>, Cloneable, Serializable { ... public Set<Map.Entry<K, V>> entrySet() { Set<Map.Entry<K, V>> es; return (es = entrySet) == null ? (entrySet = new EntrySet()) : es; } ... private class EntrySet extends AbstractSet<Map.Entry<K, V>> { public Iterator<Map.Entry<K, V>> iterator() { return new EntryIterator(); } ... } ... private class EntryIterator extends HashIterator implements Iterator<Map.Entry<K,V>> { public Map.Entry<K,V> next() { return nextEntry(); } ... } ... }在上面的代码中,
entrySet()方法返回一个EntrySet对象,该对象是AbstractSet的一个子类,实现了Set接口。EntrySet类中又实现了iterator()方法,返回一个EntryIterator对象,该对象实现了Iterator接口,用于遍历HashMap中的键值对。所以,当我们在使用HashMap时,如果需要遍历所有的键值对,可以通过调用
entrySet()方法得到EntrySet对象,然后通过迭代器迭代EntrySet对象来访问键值对。【相关推荐】
- 你可以看下这个问题的回答https://ask.csdn.net/questions/341800
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【HashMap】关于HashMap的一些常见问题探究
- 除此之外, 这篇博客: 简单谈谈HashMap中的 3.带泛型的map的entrySet的迭代器进行遍历 部分也许能够解决你的问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报