我需要一个多线程 Map 对象在我的 Web 服务器的缓存中使用,并且我需要null
keys.
HashMap
允许我有空键,但是ConcurrentHashMap
没有。我尝试创建一个同步版本HashMap
using Collections.synchronizedMap(new HashMap())
但它不接受null
键也可以。
我可以使用任何替代方法,而不必实施某种方法来包装null
keys?
The Map
由返回Collections.synchronizedMap http://download.oracle.com/javase/6/docs/api/java/util/Collections.html#synchronizedMap%28java.util.Map%29支持的所有功能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);
}
}
Output:
Size = 1
Size = 2
map.get(null) = b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)