clojure中是否有内置的数据结构支持重复元素和O(1)删除?

时间:2014-09-22 09:15:48

标签: data-structures clojure

最近,我需要在clojure中实现一个特殊的集合,它可能有重复的元素(即多集),比如

#{1 2 3 4 1 2}

此外,还需要在O(1)时间内移除等于指定值的任意元素。例如,当我输入

(my-remove #{1 1 2 2 3 4} 2)

它应该返回#{1 1 2 3 4}而不循环遍历整个集合(或向量)。

我的问题是,clojure中是否存在满足这两个属性的内置数据结构。如果没有,是否有任何适当的替代解决方案来实现这一点?谢谢!

1 个答案:

答案 0 :(得分:4)

他们的“计数”值的映射? (删除一个值会减少计数器吗?)