![](/img/trans.png)
[英]Is it possible to iterate a ConcurrentHashMap without creating new objects?
[英]new ConcurrentHashMap of new ConcurrentHashMap
我正在嘗試使用初始化ConcurrentHashMap
的ConcurrentHashMap
private final ConcurrentHashMap<
String,
ConcurrentHashMap<String, Double>
> myMulitiConcurrentHashMap = new ConcurrentHashMap<
String,
new ConcurrentHashMap<String, Double>()
>();
但是javac
給
HashMapper.java:132: error: illegal start of type
new ConcurrentHashMap<String, Double>()
^
HashMapper.java:132: error: '(' or '[' expected
new ConcurrentHashMap<String, Double>()
^
HashMapper.java:132: error: ';' expected
new ConcurrentHashMap<String, Double>()
指向第二個new
。
如何正確new
初始化myMulitiConcurrentHashMap
?
您不初始化內部的ConcurrentHashMap<String, Double>
; 只需執行以下操作:
new ConcurrentHashMap<
String,
ConcurrentHashMap<String, Double>
>();
泛型類型參數正是– 類型 。
擁有Map<String, new SomeType()>
沒有任何意義。
您只需編寫第二個參數的類型 。
解釋一下,您正在創建一個new ConcurrentHashMap<K, V>()
,以后可以容納多個內部地圖。
順便說一下,Java 7現在有一個更簡潔的語法(“鑽石”):
private final
ConcurrentHashMap<String, ConcurrentHashMap<String, Double>>
myMulitiConcurrentHashMap =
new ConcurrentHashMap<>();
您也應該能夠使用左側的接口:
private final
ConcurrentMap<String, ConcurrentMap<String, Double>>
myMulitiConcurrentHashMap =
new ConcurrentHashMap<>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.