假设我有一个LinkedHashMap<String, Double> myMap
我添加pair1
的 , pair2
,pair3
对。
现在我执行以下循环:
for (Double currDouble : myMap.getValues()) {...}
Double
循环中的第一个对象会是吗pair1
?第二个pair2
?还是不必?
我检查了类似的程序,似乎它确实保持了插入顺序,但总是这样吗?
假设我有一个LinkedHashMap<String, Double> myMap
我添加pair1
的 , pair2
,pair3
对。
现在我执行以下循环:
for (Double currDouble : myMap.getValues()) {...}
Double
循环中的第一个对象会是吗pair1
?第二个pair2
?还是不必?
我检查了类似的程序,似乎它确实保持了插入顺序,但总是这样吗?
默认情况下,LinkedHashMap
保留插入顺序。虽然有一个选项可以切换到访问顺序,这可能是令人困惑的因素。
因此,要回答您的问题,是的,第一个Double
将来自pair1
,第二个来自pair2
等。鉴于您没有设置LinkedHashMap
访问顺序这一事实。
如果您仍然不确定该行为,您始终可以通过向 a 添加一堆数据来测试它LinkedHashMap
,并像您在问题中描述的那样对其进行迭代。您会看到它将保留插入顺序(或访问顺序,如果已设置)。
是的!
从 LinkedHashMap 文档的第一句话开始: ... Map 接口的实现,具有可预测的迭代顺序 .... 这通常是键插入映射的顺序(插入顺序)。
如果重新插入键(可能具有不同的值),它不会更改原始顺序。