I think clojure's array-maps do it but with some limitations:
https://clojure.org/reference/data_structures#ArrayMaps
http://arclanguage.org/item?id=21014