Data structures clojure中是否有支持重复元素和O(1)删除的内置数据结构?
最近,我需要在clojure中实现一个特殊的集合,该集合可能有重复的元素,例如multisetData structures clojure中是否有支持重复元素和O(1)删除的内置数据结构?,data-structures,clojure,Data Structures,Clojure,最近,我需要在clojure中实现一个特殊的集合,该集合可能有重复的元素,例如multiset #{1 2 3 4 1 2} 此外,还需要在O1时间内删除等于指定值的任意元素。例如,当我输入 (my-remove #{1 1 2 2 3 4} 2) 它应该返回{1 2 3 4}而不通过整个集合向量循环 我的问题是,clojure中是否存在满足这两个属性的内置数据结构。如果没有,是否有适当的替代解决方案来实现这一点?谢谢 值到其计数的映射?删除一个值将减少计数器?Clojure缺少标准的多集/
#{1 2 3 4 1 2}
此外,还需要在O1时间内删除等于指定值的任意元素。例如,当我输入
(my-remove #{1 1 2 2 3 4} 2)
它应该返回{1 2 3 4}而不通过整个集合向量循环
我的问题是,clojure中是否存在满足这两个属性的内置数据结构。如果没有,是否有适当的替代解决方案来实现这一点?谢谢 值到其计数的映射?删除一个值将减少计数器?Clojure缺少标准的多集/包。你可以尝试-未经测试。谢谢!但有没有一种直观的方法可以做到这一点?不知道你所说的直观是什么意思;默认情况下不支持此数据结构,因此您必须包装标准哈希映射,并编写自己的contains/add/remove函数。这似乎是在@Thumbnail提到的multiset库中完成的。我刚才在github上查看了multiset。你说得对。。。我几乎没有clojure编程的经验,我认为这个解决方案似乎是最可行的。无论如何,谢谢你的解释!