我已经整理项目不到50的小集合,我经常检查,如果一个特定的项目是在收集与否,Clojure的查找性能矢量VS集
此,
(time
(let [a [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]]
(dotimes [i 100000]
(filter (fn [[k]] (= k 15)) a))))
需要10毫秒如果我使用一套,但是,
(time
(let [a (sorted-set 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)]
(dotimes [i 100000]
(a 15))))
它总是至少需要两倍。我不明白的是,set应该为查找优化,为什么过滤更快?