不会
HashMap 不支持动态缩小容量
缩容只能节省一部分的数组空间,但缩容后的 rehash 缺需要进行大量的计算,得不偿失;
HashMap 大部分时候都是用于局部变量,会很快被 GC 掉,没有必要花费大量的算力去缩容和 rehash。
Java 偏向于空间换时间,缩容后再添加数据可能还要再次扩容,这样反复横跳带来的收益不高。
参考
https://www.zhihu.com/question/366679456