我在项目中第一次使用ArrayMap,我认为它就像数组一样工作。我希望在使用.put方法时将其插入下一个索引。
但是在我的情况下,这是不对的-在我一个个地添加所有元素之后,我添加的第一个元素以索引4结束,这有点奇怪。
这是我添加元素的前三个步骤:
1-沙拉:
2-汤:
3-开胃菜:
因此,以某种方式在第二步“ 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/