【发布时间】:2018-11-01 11:40:26
【问题描述】:
我正在研究 clojure 源代码。 PersistentArrayMap 的实现在assoc 函数中有这个条件:
if(array.length >= HASHTABLE_THRESHOLD)
return createHT(array).assoc(key, val);
HASHTABLE_THRESHOLD 是 16。因此,如果 arraymap 已经有 8 对,则 assoc 应该返回一个 PersistentHashMap。现在看看这个 clojure 代码:
(defn create [n, init] (if (= n 0) init (recur (dec n) (assoc init n n))))
(type (create 9 {}))
输出是clojure.lang.PersistentArrayMap,不应该是PersistentHashMap吗?如果我使用 10 而不是 9,我会得到什么。
【问题讨论】:
标签: java data-structures clojure hashmap