【问题标题】:How Java HashMap.size() functions works internally?Java HashMap.size() 函数如何在内部工作?
【发布时间】:2020-07-03 14:03:33
【问题描述】:

我只是在 leetcode https://leetcode.com/problems/insert-delete-getrandom-o1/submissions/ 上解决一些问题,在使用 ArrayList.size() 和 HashMap.size() 函数时,我观察到执行时间急剧增加(从 14 毫秒到 248 毫秒)是整体解决方案,所以它让我想知道 HashMap 究竟是如何计算它的大小的?

我没有定义这两个集合的初始容量。

【问题讨论】:

    标签: java data-structures collections


    【解决方案1】:

    HashMap.size() 方法返回size 成员变量的值。如果本地无法访问完整源代码,可以在 GitHub 上找到:https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/HashMap.java#L526

        /**
         * Returns the number of key-value mappings in this map.
         *
         * @return the number of key-value mappings in this map
         */
        public int size() {
            return size;
        }
    

    您看到的“执行时间急剧增加”可能是因为 HashMap 是一种比 ArrayList 更复杂的数据结构。这意味着添加或查找值之类的操作会产生更多开销。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2014-11-22
      • 2015-11-25
      • 2019-02-01
      • 2020-11-29
      • 2015-09-18
      • 2019-10-08
      • 2011-05-07
      • 2013-02-13
      • 2018-03-07
      相关资源
      最近更新 更多