HashMap是先进行元素插入还是先进行扩容?请说明一下原因?
先插入,后扩容。因为先插入后扩容,不一定每次都会新增元素,而是有可能直接更新已有的元素值,然后直接返回了。而如果先扩容后插入元素,每次都会检测是否需要扩容,相对前者会多一步判断操作,相对会损耗性能所以,先插入元素,如果确定数组新增了元素导致占用了空间,此时再判断扩容是更合理的。
先插入,后扩容。因为先插入后扩容,不一定每次都会新增元素,而是有可能直接更新已有的元素值,然后直接返回了。而如果先扩容后插入元素,每次都会检测是否需要扩容,相对前者会多一步判断操作,相对会损耗性能所以,先插入元素,如果确定数组新增了元素导致占用了空间,此时再判断扩容是更合理的。