我已經整理項目不到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應該爲查找優化,爲什麼過濾更快?