Java源代码中AbstractMap是如何实现size()的?

发布于 2022-09-05 19:55:14 字数 704 浏览 17 评论 0


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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁的年少不轻狂 2022-09-12 19:55:14

这个只是个抽象类,具体方法实现在子类上面。可以看HashMap的源码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文