繁体   English   中英

HashMap 到 concurrentHashMap

[英]HashMap to concurrentHashMap

我有一个返回HashMapgetHashMap方法。 我需要用HashMap填充ConcurrentHashMap (在setConcurrentHashMap )。

有没有办法做到这一点?

示例代码:

//getHashMap return a HashMap<String, String>
Map<String, String> myMap = getHashMap();
TestClass.getSingleton().setConcurrentHashMap(ConcurrentHashMap<String, String> concurrentHashMap)

快速浏览一下javadoc 会发现ConcurrentHashMap有一个复制构造函数,它接受一个 Map 作为参数:

Map<String, String> myMap = getHashMap();
ConcurrentMap<String, String> concurrentMap = new ConcurrentHashMap<> (myMap);

您有Collections#synchronizedXXX可以很好地用于此类任务。

对于您的情况,将使用Collections#synchronizedMap(Map)映射。

TestClass.getSingleton()
         .setConcurrentHashMap(Collections.synchronizedMap(myMap));

ConcurrentHashMap类提供了一个构造函数来从给定的Map创建一个ConcurrentHashMap

Map<String, String> myMap = getHashMap();
TestClass.getSingleton()
    .setConcurrentHashMap(new ConcurrentHashMap<String, String>(myMap));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM