在java中我需要告诉ConcurrentHashMap
键的类型或值是什么,然后在clojure中如何做。我可以创建一个新的ConcurrentHashMap
而不指定键或值的类型,但我想如果我可以指定类型,那么性能可能会更好。因此,如何将密钥指定为String
,将值指定为Int
。
答案 0 :(得分:2)
ConcurrentHashMap
的性能不应受类型参数的影响。在java中,type参数仅由编译器使用并在编译时擦除。
答案 1 :(得分:2)
Clojure贴图可以包含任何类型的值,无法限制它接受的类型作为键/值,或者提示编译器针对某些类型进行优化。
但是有一种方法可以提示参数和绑定的类型以避免反射。虽然如果您的问题与您遇到的atom is slow when using it with big map问题有关,我很确定指定地图的类型不会产生任何影响,因为Clojure PersistentHashMap
每次使用Util.hasheq
找出它的哈希的关键。