代码之家  ›  专栏  ›  技术社区  ›  ffriend

按添加键的顺序保存其键的地图

  •  3
  • ffriend  · 技术社区  · 14 年前

    Clojure中是否有适合此要求的数据结构:

    • 表示键值对,即映射;
    • get 操作使用更少 O(n) ;
    • 把钥匙按顺序放好。
    2 回复  |  直到 11 年前
        1
  •  3
  •   Alex Miller    14 年前

    我也需要这个。我通常选择map+a seq(包含键的顺序)。你可以毫无保留地使用LinkedHashMap,但我认为如果你这么做,上帝会杀了一只小猫。

    克里斯·豪斯的 finger tree implementation 可能符合要求?

        2
  •  0
  •   Abhinav Sarkar    14 年前

    user=> (sorted-map-by (fn [_ _] -1) :a 1 :b 2 :c 3 :d 4)
    {:d 4, :c 3, :b 2, :a 1}
    

    使用带比较器的排序映射,该比较器始终返回-1。最新的条目将位于地图的开头,最旧的条目将位于地图的结尾。

    回答错误。请参阅下面的评论。

    推荐文章