hashmap
时间: 2025-05-30 18:08:40 浏览: 47
### Java 中 HashMap 的使用方法
#### 1. **简介**
`HashMap` 是 Java 集合框架中的一个重要类,用于存储键值对(key-value pair)。它的底层基于哈希表实现,提供了快速的查找、插入和删除操作。`HashMap` 不保证元素的顺序,并允许一个 `null` 键和多个 `null` 值。
#### 2. **基本操作**
以下是 `HashMap` 的一些常用方法及其功能:
- **put(key, value)**: 将指定的键值对存入 `HashMap`。
- **get(key)**: 返回与指定键关联的值。
- **remove(key)**: 移除指定键对应的映射关系。
- **size()**: 返回 `HashMap` 中键值对的数量。
- **clone()**: 创建并返回该 `HashMap` 对象的一个副本。
- **isEmpty()**: 如果此 `HashMap` 映射不包含任何键值对,则返回 true。
这些方法的具体用法可以通过下面的例子来说明。
---
#### 3. **示例代码**
##### 示例 1: 添加键值对并获取大小
```java
// Java program to demonstrate the use of size() method in HashMap
import java.util.*;
public class SizeExample {
public static void main(String[] args) {
// Create an empty HashMap
Map<Integer, String> map = new HashMap<>();
// Add key-value pairs using put()
map.put(10, "C");
map.put(20, "C++");
map.put(50, "JAVA");
map.put(40, "PHP");
map.put(30, "SFDC");
// Print the HashMap content
System.out.println("HashMap Content: " + map);
// Get the number of entries in the HashMap
int size = map.size();
System.out.println("Size of HashMap: " + size);
}
}
```
这段代码展示了如何向 `HashMap` 插入数据以及计算其大小[^1]。
---
##### 示例 2: 删除特定键值对
```java
// Java program to demonstrate the removal operation in HashMap
import java.util.*;
public class RemoveExample {
public static void main(String[] args) {
// Initialize a HashMap with some data
Map<Integer, String> map = new HashMap<>();
map.put(10, "C");
map.put(20, "C++");
map.put(50, "JAVA");
map.put(40, "PHP");
map.put(30, "SFDC");
// Display initial state
System.out.println("Initial HashMap: " + map);
// Remove entry associated with key '50'
map.remove(50);
// Show updated HashMap after deletion
System.out.println("Updated HashMap after removing key '50': " + map);
}
}
```
这里演示了如何移除某个键所对应的数据项[^2]。
---
##### 示例 3: 复制一份新的 HashMap 实例
```java
// Example demonstrating cloning functionality within HashMaps.
import java.util.*;
public class CloneExample {
public static void main(String[] args) {
// Original HashMap creation and population
HashMap<Integer, String> originalMap = new HashMap<>();
originalMap.put(10, "C");
originalMap.put(20, "C++");
originalMap.put(50, "JAVA");
originalMap.put(40, "PHP");
originalMap.put(30, "SFDC");
// Cloning process begins here
HashMap<Integer, String> clonedMap = (HashMap<Integer, String>)originalMap.clone();
// Output both maps post-cloning action
System.out.println("Original HashMap Contents: " + originalMap);
System.out.println("Cloned HashMap Contents: " + clonedMap);
}
}
```
本部分解释了复制现有 `HashMap` 的过程[^3]。
---
#### 4. **性能特点与其他注意事项**
由于 `HashSet` 内部依赖于 `HashMap` 来管理其成员集合,因此它们共享相似的时间复杂度特性——平均情况下 O(1),最坏情况取决于冲突处理机制[^4]。
---
###
阅读全文
相关推荐














