concurrenthashmap用法
时间: 2024-06-28 21:00:47 浏览: 177
`ConcurrentHashMap`是Java中一个线程安全的哈希映射实现,它提供了原子性的读写操作,适用于多线程并发环境。它的主要特点包括:
1. **并发性**:它内部使用了分段锁(Segment-based locking),每个段上的操作是相互独立的,可以并行执行,提高了并发性能。
2. **无锁访问**:对于大部分常见操作,`ConcurrentHashMap`使用无锁(无锁读和无锁头)的方式,避免了死锁问题。
3. **高效的查找**:由于是基于哈希表的结构,查找、插入和删除操作通常具有O(1)的时间复杂度。
4. **键值对存储**:存储键值对,键(key)唯一确定一条记录。
以下是`ConcurrentHashMap`的一些常用用法:
- **创建实例**:
```java
ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>();
```
- **添加元素**:
```java
map.put("Key", "Value");
```
- **获取元素**(如果存在):
```java
String value = map.get("Key");
```
- **检查是否包含键**:
```java
boolean containsKey = map.containsKey("Key");
```
- **删除元素**:
```java
map.remove("Key");
```
- **遍历元素**(可并发):
```java
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> entry : entries) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
```
- **大小和容量**:
```java
int size = map.size();
int capacity = map.capacity();
```
阅读全文