hashmap的原理
时间: 2023-12-16 18:27:49 浏览: 68
HashMap是一种常用的数据结构,它是基于哈希表实现的。哈希表是一种以键值对存储数据的数据结构,它通过将键映射到表中一个位置来访问记录,以加快查找的速度。HashMap的原理就是将键值对存储在哈希表中,通过哈希函数将键映射到表中的位置,然后将值存储在该位置上。
具体来说,HashMap内部维护了一个数组table,数组中的每个元素都是一个链表,链表中存储了哈希值相同的键值对。当我们向HashMap中添加一个键值对时,首先会根据键的哈希值计算出在数组中的位置,然后将该键值对添加到对应的链表中。当我们需要查找一个键值对时,HashMap会根据键的哈希值计算出在数组中的位置,然后遍历对应的链表,查找是否存在该键值对。
需要注意的是,由于不同的键可能会映射到同一个位置,因此在链表中查找键值对的过程中,还需要比较键的值是否相等。如果键的值相等,则返回对应的值,否则继续遍历链表,直到找到相应的键值对或者遍历完整个链表。
下面是一个简单的示例代码,演示了如何使用HashMap存储和查找键值对:
```java
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] args) {
// 创建一个HashMap对象
HashMap<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// 查找键值对
int value = map.get("banana");
System.out.println(value); // 输出:2
}
}
```
阅读全文