Ira*_*chi 5 java synchronization hashmap concurrenthashmap
我需要一个多线程Map对象来在我的Web服务器的缓存中使用,我需要有null密钥.
HashMap允许我有空键,但ConcurrentHashMap没有.我试图创建一个HashMap使用的同步版本,Collections.synchronizedMap(new HashMap())但它也不接受null密钥.
有没有我可以使用的替代方案,而不必实现某种方式来包装null密钥?
在Map由归国Collections.synchronizedMap支持所有的功能Map,你给它.如果你给它一个HashMap,它支持null键(以及null值,你说"......我需要"空"键值......"可以任何方式读取).是什么让你觉得它没有?
这可以按预期工作,例如:
import java.util.*;
public class MapTest
{
public static final void main(String[] args)
{
Map map;
try
{
map = Collections.synchronizedMap(new HashMap());
map.put("one", "a");
System.out.println("Size = " + map.size());
map.put(null, "b");
System.out.println("Size = " + map.size());
System.out.println("map.get(null) = " + map.get(null));
}
catch (Exception ex)
{
System.out.println("Exception: " + ex.getMessage());
ex.printStackTrace(System.out);
}
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Size = 1 Size = 2 map.get(null) = b
| 归档时间: |
|
| 查看次数: |
4481 次 |
| 最近记录: |