有没有办法转换java8 Map<K,V> 至 ConcurrentMap<K,V> 除了在所有实体上手动迭代之外?
Map<K,V>
ConcurrentMap<K,V>
yqkkidmi1#
中存在构造函数https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/concurrentmap.html所以你可以concurrenthashmap(mapm)创建一个新的Map,该Map与给定的Map具有相同的Map。
xcitsw882#
你可以用这个 ConcurrentHashMap(Map<? extends K,? extends V> m) 例如,要传入 Map 建造一个 ConcurrentHashMap .java 文档
ConcurrentHashMap(Map<? extends K,? extends V> m)
Map
ConcurrentHashMap
tzdcorbm3#
如果您只需要同步查看此Map,则可以使用
java.util.Collections#synchronizedMap
通常,这并不是您想要的,因为“synchronized”map的性能通常更差。但是这个解决方案可以解决某些情况下,当你想为你的Map特别“同步视图”。
3条答案
按热度按时间yqkkidmi1#
中存在构造函数https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/concurrentmap.html
所以你可以
concurrenthashmap(mapm)创建一个新的Map,该Map与给定的Map具有相同的Map。
xcitsw882#
你可以用这个
ConcurrentHashMap(Map<? extends K,? extends V> m)
例如,要传入Map
建造一个ConcurrentHashMap
.java 文档
tzdcorbm3#
如果您只需要同步查看此Map,则可以使用
通常,这并不是您想要的,因为“synchronized”map的性能通常更差。但是这个解决方案可以解决某些情况下,当你想为你的Map特别“同步视图”。