- HashMap是线程不安全的,主要体现在多线程操作扩容的过程中,因为要重新计算原数据的所在位置,可能会引发线程间数据迁移冲突,所以多线程操作map建议使用HashTable或者ConcurrentHashMap
- 关于HashMap的初始化容量的指定,如果能够大致确定map的容量,那么在实例化一个HashMap时最好显示指定他的容量,容量大小应当为 大于预计的size/加载因子的商的最小的2的n次方值,
例如,我们预计一个map的size为200,加载因子未指定默认为0.75,200/0.75约为267,大于267的最小的2次方数为512,则实例化map的时候初始化容量最好为512
详见HashMap扩容机制详解
java中HashMap的使用细节
最新推荐文章于 2024-08-19 11:28:55 发布