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

How to specify type when using ConcurrentHashMap in clojure

在java中我需要告诉ConcurrentHashMap键或值是哪种类型,然后在clojure中如何去做。我可以在不指定键或值类型的情况下创建一个新的 ConcurrentHashMap,但我认为如果我可以指定类型,那么性能可能会更好。那么如何将键指定为 String 并将值指定为 Int.

ConcurrentHashMap 的性能应该不受类型参数的影响。在 java 中,类型参数仅供编译器使用,并在编译时被删除。

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

然而,有一种方法可以提示参数和绑定的类型以避免反射。尽管如果您的问题与每个键上的 problem you are having, I'm pretty sure specifying the types for the map won't make a difference since Clojure PersistentHashMap uses Util.hasheq 相关以找出其哈希值。