📅  最后修改于: 2023-12-03 15:31:30.478000             🧑  作者: Mango
Java中的HashMap是一个常用的数据结构。它实现了Map接口,允许使用键-值对存储和检索元素。
HashMap内部实现了一个数组(称为哈希表),当我们向HashMap中添加元素时,首先会根据key的哈希值找到数组中的位置(即下标),然后将元素添加到该位置。如果该位置已经有元素,且该元素的key与我们要添加的key相等,则会覆盖该元素的值。
查询快速:HashMap底层采用哈希表存储,查询效率较高。
存储灵活:HashMap的key和value都可以为null,而且HashMap允许存储不同类型的元素。
线程不安全:HashMap不是线程安全的,如果多个线程同时修改HashMap时,有可能会出现数据不一致的问题。
初始容量和负载因子会直接影响HashMap的性能。如果容量太小,则会导致哈希冲突发生的概率增加,性能下降。如果负载因子太大,则会导致哈希表中元素过多,查找时间增加。
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("cherry", 3);
map.remove("apple");
map.put("banana", 10);
int value = map.get("cherry");
for (String key : map.keySet()) {
int value = map.get(key);
System.out.println(key + " : " + value);
}
HashMap是Java中常用的数据结构之一,具有存储灵活、查询快速等优点。但是它也存在线程不安全、初始容量和负载因子会影响性能等缺点,需要在实际使用中注意。