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

3
在Java中,我需要告诉ConcurrentHashMap键或值的类型,那么在Clojure中该怎么做呢?我可以创建一个没有指定键或值类型的新ConcurrentHashMap,但如果我能指定类型,性能可能会更好。所以如何将键指定为String,值指定为Int

1
即使在Java中,泛型也只是编译时的东西,不会反映在字节码中,并且与性能没有太大关系。 - noisesmith
2个回答

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

2
Clojure的映射可以容纳任何类型的值,没有限制它接受的键/值类型或提示编译器优化某些类型的方法。
然而,有一种方法可以提示参数和绑定的类型以避免反射。虽然如果您的问题与使用大型映射时atom很慢有关,但我相信指定映射的类型不会有所区别,因为Clojure PersistentHashMap对每个键都使用Util.hasheq来确定其哈希值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接