在java中,我需要告訴ConcurrentHashMap
哪種類型的鍵或值是,然後在clojure中如何執行。我可以創建一個新的ConcurrentHashMap
而不指定鍵或值的類型,但我認爲如果我可以指定類型,那麼性能可能會更好。那麼如何指定密鑰爲String
,值爲Int
。如何在clojure中使用ConcurrentHashMap時指定類型
3
A
回答
2
ConcurrentHashMap
的性能不應受類型參數的影響。在java中,類型參數僅由編譯器使用,並在編譯時擦除。
2
Clojure地圖可以容納任何類型的值,也無法限制它接受的類型作爲鍵/值或提示編譯器對某些類型進行優化。
然而,有一種方法可以提示參數和綁定的類型以避免反射。雖然如果您的問題與您遇到的atom is slow when using it with big map問題有關,我很確定指定地圖的類型不會產生任何影響,因爲Clojure PersistentHashMap
在每個鍵上都使用Util.hasheq
來計算其散列值。
相關問題
- 1. 如何在使用通用類型時指定匿名類型的類型
- 2. 如何在swift中調用泛型函數時指定類型?
- 3. 如何在使用DataMapper時指定mysql存儲引擎類型?
- 4. 如何指定在clojure中使用哪個java函數?
- 5. 如何在Scala中使用ConcurrentHashMap computeIfAbsent()
- 6. 如何在curried函數中使用指定的數據類型?
- 7. 如何使用類型提示指定多個返回類型
- 8. 如何使用JPA CriteriaBuilder指定時間類型?
- 9. 如何指定泛型類?
- 10. 如何在clojure中定義類型列表?
- 11. 指定clojure中的對象類
- 12. 如何在Eclipse中使用逆時針編譯的Clojure類
- 13. 如何在MongoDb中插入時指定BSON類型的座標?
- 14. 如何鎖定free在java/scala中使用兩個ConcurrentHashMap?
- 15. 如何在運行時創建指定類類型的對象?
- 16. 如何在聲明類時指定類型約束和繼承?
- 17. 如何在gradle.build中使用fatjar插件時指定主類
- 18. 如何在使用ctypes調用FFmpeg庫時指定非默認類型
- 19. 如何在使用elasticsearch_dsl(Python)時指定文檔類型?同樣,如何指定幾個索引?
- 20. 如何在類型描述中指定類定義作爲參數類型
- 21. 在UML類圖中,如何指定類的實際類型?
- 22. 如何使用自定義類型的函數指針在C++
- 23. 何時何地將類型註釋放在Clojure代碼中?
- 24. 如何指定類的類型
- 25. 如何在Clojure中使用genclass擴展Java類時調用超類?
- 26. 指定如何使用PHP打開特定的文件類型
- 27. 使用ConcurrentHashMap,何時需要同步?
- 28. 如何在使用原生SQL查詢時指定數據類型?
- 29. 如何在使用Azure CLI實體插入命令時指定字段類型?
- 30. 在運行時指定對象類型
即使在Java中,泛型也只是編譯時的事情,並不反映在字節碼中,並且最終不會與性能有關。 – noisesmith