缺点: 线程不安全:HashMap是非线程安全的,如果在多线程环境下使用put方法可能会发生并发问题,需要通过额外的同步措施来保证线程安全。 预分配空间:HashMap在初始化时需要预分配一定大小的空间,如果空间不足会触发扩容操作,导致一定的性能开销。 可能产生哈希冲突:不同的键通过哈希算法计算得到的哈希值可能相同,这就会导...
其主要特点是通过键的哈希值存储值,并提供了添加、获取和操作存储值的方法。 HashMap的底层数据结构是由数组和链表组成的。数组是HashMap的主体,而链表则是为了解决哈希冲突而存在的。当两个或更多的键的哈希值相同时,就会发生哈希冲突,此时,这些键值对就会存储在链表中。 在JDK1.8之前,当链表长度大于阈值(默认为8...