最近,我需要在clojure中实现一个特殊的集合,它可能有重复的元素(即多集),比如
#{1 2 3 4 1 2}
此外,还需要在O(1)时间内移除等于指定值的任意元素。例如,当我输入
时(my-remove #{1 1 2 2 3 4} 2)
它应该返回#{1 1 2 3 4}
而不循环遍历整个集合(或向量)。
我的问题是,clojure中是否存在满足这两个属性的内置数据结构。如果没有,是否有任何适当的替代解决方案来实现这一点?谢谢!
答案 0 :(得分:4)
他们的“计数”值的映射? (删除一个值会减少计数器吗?)