Wie bekomme ich eine Clojure-Array-Map, um die Einfügereihenfolge nach Assoc beizubehalten?

ich habe einarray-map was ich binassoceinige Werte hinein. Nach einer bestimmten Größe lautet der zurückgegebene Wert aPersistentHashMap eher als das OriginalPersistentArrayMap. Ich habe über dieses Verhalten auf einigen Websites gelesen. Gibt es eine Möglichkeit, die Einfügereihenfolge auch nach zu erzwingenassoc?

Ich habe eine separate Funktion, die eine übernehmen wirdash-map und ein Vektor von Schlüsseln, und geben Sie eine "frische"array-map mit Schlüsseln in dieser Reihenfolge, aber das bedeutet, dass ich für jedes Assoc zuerst die Schlüssel extrahieren, den neuen Schlüssel für den Vektor konservieren / konjizieren und dann eine neue Array-Map erstellen muss. Scheint kludgey, auch wenn in einer separaten Funktion geschrieben.

Gibt es eine direktere sprachunterstützte Möglichkeit, die Reihenfolge der Einfügungen auch auf Array-Maps mit großen Schlüsseln (> 10, aber <50) beizubehalten?

Falls es relevant ist, verwende ich eine Liste von Array-Maps als Daten in einem Incanter-Dataset und gebe sie dann aus, um zu übertreffen. Die Funktion save-xls behält die Reihenfolge der Schlüssel / Spalten bei.

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage