是否存在ArraySet和ArrayMap这样的东西?

时间:2010-10-15 16:02:14

标签: java

我想要一张地图,如果有这样的东西,它会保留元素的顺序。

我知道不会在HashMap附近执行,但我只打算将它用于小型/临时程序。

6 个答案:

答案 0 :(得分:13)

没有ArrayMap。 :)

但是LinkedHashMap会保留广告订单,而TreeMap会根据密钥的自然顺序排序。

答案 1 :(得分:6)

如果您指的是项目的已定义排序,则可以使用TreeMap(文档here)..否则,如果您正在谈论广告订单,则可以使用LinkedHashMap({ {3}})。

答案 2 :(得分:3)

您应该检查fastutil项目,一个内存和时间有效的Java Collection框架。 它提供了一个数组映射实现,例如Int2IntArrayMap

试一试!我不再使用标准库了,fastutils真的有所作为。 希望它有所帮助

答案 3 :(得分:1)

查看LinkedHashSet-Map

  

此实现与HashSet的不同之处在于它维护了一个贯穿其所有条目的双向链表。此链接列表定义迭代排序,即元素插入集合(插入顺序)的顺序。请注意,如果将元素重新插入到集合中,则插入顺序不会受到影响。

     

此实现使客户免于HashSet提供的未指定的,通常是混乱的排序,而不会导致与TreeSet相关的成本增加。无论原始集合的实现如何,它都可用于生成与原始集合具有相同顺序的集合的副本。

答案 4 :(得分:1)

或者ListOrderedMap如何保留元素的顺序。 ListOrderedMap Api

答案 5 :(得分:1)

Android支持库中有ArrayMap。有一些非JDK组件,但它不应该很难移植。

Source