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()的具体实现;

阅读 2.4k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题