HashMap 使用哈希表来存储数据,它的内部实现方式是一个数组加链表的结构。当我们将键值对存储到 HashMap 中时,它会首先根据 key 的哈希值来确定该键值对在数组中的位置。如果该位置上已经存在了其他的键值对,它会将该键值对加入到该位置上的链表中。如果该位置上没有键值对,它会直接将键值对存储在该位置上。在进行查找时,HashMap 也是根据 key 的哈希值来确定该键值对在数组中的位置,并且通过链表遍历来找到该键值对。
HashMap 的哈希算法是在 JDK 中实现的,其具体实现方式是将 key 的哈希值进行异或运算后再乘以一个常数,这个常数是为了让哈希值分布更加均匀。在存储数据时,HashMap 会根据 key 的哈希值计算出数组中的位置,然后将键值对存储在该位置上。如果该位置上已经存在了键值对,它会将新的键值对插入到链表的头部,这样就可以保证在查找时,先查找到最新的键值对。
HashMap 的使用方法非常简单,我们只需要创建一个 HashMap 对象,然后使用 put() 方法来存储键值对,使用 get() 方法来查找键值对即可。
下面是一个示例代码:
import java.util.HashMap;
import java.util.Map;
public class HashMapDemo {
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("key1", "value1");
hashMap.put("key2", "value2");
hashMap.put("key3", "value3");
System.out.println(hashMap.get("key1")); // 输出 value1
System.out.println(hashMap.get("key2")); // 输出 value2
System.out.println(hashMap.get("key3")); // 输出 value3
}
}
在上面的代码中,我们首先创建了一个 HashMap 对象,然后使用 put() 方法将三个键值对存储到该对象中。最后,我们使用 get() 方法来查找该 HashMap 对象中的键值对。
HashMap 的常用 API 如下:
put(K key, V value)
:将键值对存储到 HashMap 中;get(Object key)
:根据键来查找键值对;remove(Object key)
:根据键来删除键值对;clear()
:清空 HashMap 中的所有键值对;size()
:返回 HashMap 中键值对的个数;containsKey(Object key)
:判断 HashMap 中是否包含指定的键;containsValue(Object value)
:判断 HashMap 中是否包含指定的值;isEmpty()
:判断 HashMap 是否为空;keySet()
:返回 HashMap 中所有键的集合;values()
:返回 HashMap 中所有值的集合;entrySet()
:返回 HashMap 中所有键值对的集合。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。