Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ConcurrentHashMap到HashMap_Java_Gwt - Fatal编程技术网

Java ConcurrentHashMap到HashMap

Java ConcurrentHashMap到HashMap,java,gwt,Java,Gwt,我只是想知道。。。如何以最佳方式将ConcurrentHashMap转换为HashMap 非常感谢任何有用的评论您为什么需要这样做?只需将其投射到地图为什么需要这样做?只需将其强制转换为MapConcurrentHashMap不是HashMap(在严格的类继承意义上),因此无法执行此强制转换。正如Keith所说,您最好把它当作一个Map,让您的客户机代码不关心实现。如果确实要将ConcurrentHashMap转换为HashMap,请使用构造函数,但这需要创建并填充一个全新的映射 我将澄清我的“

我只是想知道。。。如何以最佳方式将
ConcurrentHashMap
转换为
HashMap


非常感谢任何有用的评论

您为什么需要这样做?只需将其投射到
地图

为什么需要这样做?只需将其强制转换为
Map

ConcurrentHashMap
不是
HashMap
(在严格的类继承意义上),因此无法执行此强制转换。正如Keith所说,您最好把它当作一个
Map
,让您的客户机代码不关心实现。如果确实要将
ConcurrentHashMap
转换为
HashMap
,请使用构造函数,但这需要创建并填充一个全新的映射

我将澄清我的“将其视为地图”的建议。编写代码的通常方法(除非您确实需要
HashMap
ConcurrentHashMap
所特有的功能),如下所示:

Map<K, V> myMap = new HashMap<K, V>();
Map myMap=newhashmap();

Map myMap=new ConcurrentHashMap():
但不是

//Don't do this unless you have a good reason!
HashMap<K, V> myMap = new HashMap<K, V>();
//除非有充分的理由,否则不要这样做!
HashMap myMap=新HashMap();

保持通用性并将变量
myMap
定义为
Map
而不是
HashMap
的优点是,它可以让您无需担心地更改所使用的实现。

a
ConcurrentHashMap
不是
HashMap
(在严格的类继承意义上),因此您无法执行此强制转换。正如Keith所说,您最好将其视为
映射
,让您的客户端代码不关心实现。如果您确实想将
ConcurrentHashMap
转换为
HashMap
,请使用构造函数,但这需要创建并填充一个全新的映射

我将澄清我的“将其视为
Map
”建议。编写代码的通常方式(除非您确实需要
HashMap
ConcurrentHashMap
的独有功能)如下:

Map<K, V> myMap = new HashMap<K, V>();
Map myMap=newhashmap();

Map myMap=new ConcurrentHashMap():
但不是

//Don't do this unless you have a good reason!
HashMap<K, V> myMap = new HashMap<K, V>();
//除非有充分的理由,否则不要这样做!
HashMap myMap=新HashMap();

将变量
myMap
定义为
Map
而不是
HashMap
的好处在于,它可以让您无需担心地更改所使用的实现。

为什么您认为这是必要的?为什么您认为这是必要的?+1也感谢您提供了更多详细信息+1也感谢您提供了m谢谢你的回复。我收到了谢谢你的回复。我收到了