我有一个array-map,我正在给它assoc一些值。在一定大小之后,返回值是一个PersistentHashMap而不是原始的PersistentArrayMap。我在一些网站上读到过这种行为。有没有办法在assoc之后强制执行插入顺序?
我确实有一个单独的函数,它将接受一个ash-map和一个键的向量,并返回一个“新的”array-map,并按此顺序返回一个键,但这意味着对于每个assoc,我必须首先提取键,cons/conj将新的键转换为向量,然后创建一个新的数组映射。即使在单独的函数中编写,看起来也很笨拙。
有没有一种更直接的语言支持的方法来保持插入顺序,即使在大号(>10,但< 50)的键数组映射上也是如此?
在相关的情况下,我使用一组数组映射作为数据到incanter数据集,然后输出到excel。save-xls函数保持键/列的顺序。
谢谢
发布于 2012-08-20 16:09:05
您可以使用有序映射:https://github.com/flatland/ordered
https://stackoverflow.com/questions/12034142
复制相似问题