我想要一张地图,如果有这样的东西,它会保留元素的顺序。
我知道不会在HashMap附近执行,但我只打算将它用于小型/临时程序。
答案 0 :(得分:13)
没有ArrayMap。 :)
但是LinkedHashMap会保留广告订单,而TreeMap会根据密钥的自然顺序排序。
答案 1 :(得分:6)
如果您指的是项目的已定义排序,则可以使用TreeMap
(文档here)..否则,如果您正在谈论广告订单,则可以使用LinkedHashMap
({ {3}})。
答案 2 :(得分:3)
您应该检查fastutil项目,一个内存和时间有效的Java Collection框架。 它提供了一个数组映射实现,例如Int2IntArrayMap
试一试!我不再使用标准库了,fastutils真的有所作为。 希望它有所帮助
答案 3 :(得分:1)
此实现与
HashSet
的不同之处在于它维护了一个贯穿其所有条目的双向链表。此链接列表定义迭代排序,即元素插入集合(插入顺序)的顺序。请注意,如果将元素重新插入到集合中,则插入顺序不会受到影响。此实现使客户免于
HashSet
提供的未指定的,通常是混乱的排序,而不会导致与TreeSet
相关的成本增加。无论原始集合的实现如何,它都可用于生成与原始集合具有相同顺序的集合的副本。
答案 4 :(得分:1)
或者ListOrderedMap如何保留元素的顺序。 ListOrderedMap Api
答案 5 :(得分:1)