我在项目中第一次使用ArrayMap,我认为它就像数组一样工作。我希望在使用.put方法时将其插入下一个索引。
但是在我的情况下,这是不对的-在我一个个地添加所有元素之后,我添加的第一个元素以索引4结束,这有点奇怪。

这是我添加元素的前三个步骤:

1-沙拉:

java - ArrayMap put方法以奇怪的顺序推送元素-LMLPHP

2-汤:

java - ArrayMap put方法以奇怪的顺序推送元素-LMLPHP

3-开胃菜:

java - ArrayMap put方法以奇怪的顺序推送元素-LMLPHP

因此,以某种方式在第二步“ Soup”元素中插入了索引0而不是我期望的1,但是奇怪的是,在第三步中,“ Appetizers”被插入到“ Soup”之后。

这是我用来推送键和值对的代码:

function ArrayMap<String, DMType> addElement(String typeKey, DMType type) {
    ArrayMap<String, DMType> types = new ArrayMap<>();
    types.put(typeKey, type);

    return types;
}


我是否缺少有关ArrayMap行为的信息?

最佳答案

是的,由于名称的缘故,它具有误导性,但与数组不同,ArrayMap没有保证顺序。


  ArrayMap是通用的键->值映射数据结构,
  旨在比传统的HashMap具有更高的内存效率。


ArrayMap实际上是一个Map:


  公共类ArrayMap扩展了SimpleArrayMap实现的Map


如果您想保证按顺序订购地图功能,请改用LinkedHashMap。


  LinkedHashMap定义了迭代顺序,通常是
  键插入地图的顺序(插入顺序)。


documentation

关于java - ArrayMap put方法以奇怪的顺序推送元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43094531/

10-12 04:06