Java源代码中AbstractMap是如何实现size()的?
map中的int size()是怎么实现的?[int size()是用来计算map中键值对的数量]
AbstractMap实现了map接口,但是对于map中的int size()方法使用了以下实现:
public int size() {
return entrySet().size();
}
调用了entrySet()来调用size()方法,但是entrySet()本身并没有对size()进行实现,而是依赖于Set的实现.
public abstract Set<Entry<K,V>> entrySet();
但是Set的实现类AbstractSet没有对size()进行实现而是继承了AbstractCollection去size()
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>{
}
但是AbstractCollection对size()的实现就一行:
public abstract int size();
到这里找不到size()的具体实现;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个只是个抽象类,具体方法实现在子类上面。可以看HashMap的源码