java – HashMap.clear()是否将内部哈希表的大小调整为原始大小?

这段代码执行后HashMap会发生什么?

HashMap m  = new HashMap();
for (int i = 0; i < 1024 * 1024; i++)
    m.put(i, i);
m.clear();

在1M之后,内部哈希表将从原来的16增长到1MB. clear()是否将其调整为原始大小?

解决方法:

不,表格保留了它的大小.所有元素都设置为null:

public void clear() {
    modCount++;
    Entry[] tab = table;
    for (int i = 0; i < tab.length; i++)
        tab[i] = null;
    size = 0;
}
上一篇:Linux简单实用小技巧


下一篇:图形化桌面环境中的脚本编程