Java LinkedHashMap中的集合(值)是否保留插入顺序?
假设我有一个Java LinkedHashMap中的集合(值)是否保留插入顺序?,java,linkedhashmap,insertion-order,Java,Linkedhashmap,Insertion Order,假设我有一个LinkedHashMap myMap,我将pair1,pair2,pair3对添加到了它 现在我执行以下循环: for (Double currDouble : myMap.getValues()) {...} 循环中的第一个Double对象是否是pair1中的一个?和第二个pair2?或者不一定是这样 我使用类似的程序进行了检查,似乎它确实保持了插入顺序,但是否总是这样?默认情况下,LinkedHashMap保留插入顺序。尽管有一个切换到访问顺序的选项,这可能是令人困惑的因素
LinkedHashMap myMap
,我将pair1
,pair2
,pair3
对添加到了它
现在我执行以下循环:
for (Double currDouble : myMap.getValues()) {...}
循环中的第一个Double
对象是否是pair1
中的一个?和第二个pair2
?或者不一定是这样
我使用类似的程序进行了检查,似乎它确实保持了插入顺序,但是否总是这样?默认情况下,
LinkedHashMap
保留插入顺序。尽管有一个切换到访问顺序的选项,这可能是令人困惑的因素
因此,要回答您的问题,yes,第一个Double
将来自pair1
,第二个来自pair2
等。考虑到您没有将LinkedHashMap
设置为访问顺序
如果您仍然不确定该行为,您可以通过向
LinkedHashMap
添加一组数据来测试它,并像您在问题中所描述的那样对其进行迭代。您将看到它将保留插入顺序(或访问顺序,如果已设置)。默认情况下,LinkedHashMap
保留插入顺序。尽管有一个切换到访问顺序的选项,这可能是令人困惑的因素
因此,要回答您的问题,yes,第一个Double
将来自pair1
,第二个来自pair2
等。考虑到您没有将LinkedHashMap
设置为访问顺序
如果您仍然不确定该行为,您可以通过向LinkedHashMap
添加一组数据来测试它,并像您在问题中所描述的那样对其进行迭代。您将看到它将保留插入顺序(或访问顺序,如果已设置)。请参阅
你可以这样做:
for (String key : myMap.getKeys())
Double d = myMap.get(key);
看
你可以这样做:
for (String key : myMap.getKeys())
Double d = myMap.get(key);
对!
LinkedHashMap文档的第一句话:
... 映射接口的实现,具有可预测的迭代顺序。。。。这通常是将关键点插入地图的顺序(插入顺序)
如果重新插入密钥(可能具有不同的值),则不会更改原始顺序。是
LinkedHashMap文档的第一句话:
... 映射接口的实现,具有可预测的迭代顺序。。。。这通常是将关键点插入地图的顺序(插入顺序)
如果重新插入一个键(可能使用不同的值),它不会更改原始顺序。它保持键的插入顺序(不是值)。它保持键的插入顺序(不是值)。