如何在clojure中使用ConcurrentHashMap时指定类型

时间:2015-01-15 13:50:59

标签: clojure

在java中我需要告诉ConcurrentHashMap键的类型或值是什么,然后在clojure中如何做。我可以创建一个新的ConcurrentHashMap而不指定键或值的类型,但我想如果我可以指定类型,那么性能可能会更好。因此,如何将密钥指定为String,将值指定为Int

2 个答案:

答案 0 :(得分:2)

ConcurrentHashMap的性能不应受类型参数的影响。在java中,type参数仅由编译器使用并在编译时擦除。

答案 1 :(得分:2)

Clojure贴图可以包含任何类型的值,无法限制它接受的类型作为键/值,或者提示编译器针对某些类型进行优化。

但是有一种方法可以提示参数和绑定的类型以避免反射。虽然如果您的问题与您遇到的atom is slow when using it with big map问题有关,我很确定指定地图的类型不会产生任何影响,因为Clojure PersistentHashMap每次使用Util.hasheq找出它的哈希的关键。