2015-10-20 32 views
3

如何合併兩個hashmap變量,例如map1map2如何合併Clojure上的兩個hashmaps?

我已經試過(merge map1 map2),但我得到以下異常:

ClassCastException異常的java.util.HashMap不能轉換到 clojure.lang.IPersistentCollection

回答

4

好,顯然是因爲java.util.HashMap是不是clojure地圖。你可能得到map1map2(或兩者)執行一些java代碼?

所以在這種情況下,你應該首先將它們轉換爲Clojure的地圖這樣的,例如:

(merge (into {} map1) (into {} map2))

這應該工作。

也看過這樣一句:Clojure: working with a java.util.HashMap in an idomatic Clojure fashion

+1

不應該'(合併{} MAP1 MAP2)'工作一樣好? – DaoWen

+0

你是對的,但我只是想強調轉換的想法 – leetwinski