ConcurrentHashMap代码示例
时间: 2024-05-10 19:12:39 浏览: 7
ConcurrentHashMap是Java中线程安全的HashMap实现,可以在多线程环境下安全地进行读写操作。以下是ConcurrentHashMap的一个简单示例:
```java
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
System.out.println(map.get("A")); // 输出1
System.out.println(map.get("B")); // 输出2
map.put("D", 4); // 添加新元素
// 遍历map
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
```
以上示例代码创建了一个ConcurrentHashMap对象,向其中添加了3个键值对,并输出了其中两个元素的值。随后又向其中添加了一个新元素,并使用for循环遍历了整个map,输出了每个键值对的内容。
相关问题
ConcurrentHashMap实现的代码实例
下面是一个简单的基于ConcurrentHashMap实现的线程安全的计数器示例代码:
```java
import java.util.concurrent.ConcurrentHashMap;
public class Counter {
private ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
public void increment(String key) {
map.putIfAbsent(key, 0);
map.compute(key, (k, v) -> v + 1);
}
public int get(String key) {
return map.getOrDefault(key, 0);
}
}
```
使用ConcurrentHashMap实现的计数器具有较好的线程安全性和高并发性能。在多个线程同时调用increment方法时,ConcurrentHashMap能够保证每个线程操作的key-value对不会相互干扰,从而实现线程安全的计数器功能。
ConcurrentHashMap 作为缓存的代码实现
以下是基于 ConcurrentHashMap 实现缓存的 Java 代码示例:
```java
import java.util.concurrent.ConcurrentHashMap;
public class Cache {
private ConcurrentHashMap<String, Object> cacheMap;
public Cache() {
cacheMap = new ConcurrentHashMap<>();
}
public void put(String key, Object value) {
cacheMap.put(key, value);
}
public Object get(String key) {
return cacheMap.get(key);
}
public boolean containsKey(String key) {
return cacheMap.containsKey(key);
}
public void remove(String key) {
cacheMap.remove(key);
}
public void clear() {
cacheMap.clear();
}
public int size() {
return cacheMap.size();
}
}
```
在上面的代码中,我们使用 ConcurrentHashMap 来存储缓存数据。在构造函数中,我们初始化了一个 ConcurrentHashMap 对象。然后,我们实现了常用的缓存操作方法,包括 put、get、containsKey、remove、clear 和 size。这些方法使用 ConcurrentHashMap 对象来实现线程安全的缓存访问。