我只是想知道......如何以ConcurrentHashMap
最佳HashMap
方式投射?
非常感谢任何有用的评论
为什么你需要这样做?只需将其转换为Map
.
AConcurrentHashMap
不是 a HashMap
(在严格的类继承意义上),所以你不能执行这个转换。就像 Keith 所说,您最好将其视为 aMap
并且让您的客户端代码不关心实现。如果您真的想将 aConcurrentHashMap
变成 a HashMap
,请使用构造函数HashMap(Map),但这需要创建并填充一个全新的 Map。
我将澄清我的“将其视为Map
”建议。您编写代码的常用方式(除非您真的需要独特的功能HashMap
或者ConcurrentHashMap
是这样的:
Map<K, V> myMap = new HashMap<K, V>();
或者
Map<K, V> myMap = new ConcurrentHashMap<K, V>():
但不是
//Don't do this unless you have a good reason!
HashMap<K, V> myMap = new HashMap<K, V>();
保持通用性并将变量定义myMap
为 aMap
而不是 a的优点HashMap
是它可以让您更改您使用的实现,而无需担心。