在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
相关以找出其哈希值。
在java中我需要告诉ConcurrentHashMap
键或值是哪种类型,然后在clojure中如何去做。我可以在不指定键或值类型的情况下创建一个新的 ConcurrentHashMap
,但我认为如果我可以指定类型,那么性能可能会更好。那么如何将键指定为 String
并将值指定为 Int
.
ConcurrentHashMap
的性能应该不受类型参数的影响。在 java 中,类型参数仅供编译器使用,并在编译时被删除。
Clojure 映射可以包含任何类型的值,无法限制它作为 keys/values 接受的类型或提示编译器针对某些类型进行优化。
然而,有一种方法可以提示参数和绑定的类型以避免反射。尽管如果您的问题与每个键上的 PersistentHashMap
uses Util.hasheq
相关以找出其哈希值。