Java HashMap
时间: 2023-11-02 09:06:19 浏览: 44
Java HashMap 是一种基于哈希表实现的 Map 接口的键值对存储结构。它允许 null 键和 null 值,非线程安全。HashMap 是最常用的 Map 实现类之一。
HashMap 内部实现了一个数组,数组中的每个元素是一个链表,每个链表存储了哈希值相同的键值对,通过哈希函数计算键的哈希值,找到对应的链表,然后在链表中查找键值对。如果链表中已经有相同的键,则更新其值;如果链表中没有相同的键,则插入新的键值对。
HashMap 的时间复杂度取决于哈希函数的实现和哈希表的大小,一般情况下是 O(1),最坏情况下是 O(n),其中 n 是哈希表的大小。因此,在使用 HashMap 时,需要注意哈希函数的选择和哈希表的大小。
以下是使用 HashMap 的示例代码:
```java
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] args) {
// 创建一个 HashMap 对象
HashMap<String, Integer> hashMap = new HashMap<>();
// 添加键值对
hashMap.put("apple", 10);
hashMap.put("banana", 20);
hashMap.put("orange", 30);
// 获取键值对的值
int value = hashMap.get("apple");
System.out.println(value); // 输出:10
// 判断是否包含键
boolean containsKey = hashMap.containsKey("banana");
System.out.println(containsKey); // 输出:true
// 遍历键值对
for (String key : hashMap.keySet()) {
int val = hashMap.get(key);
System.out.println(key + " : " + val);
}
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)