Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LinkedHashMap中的集合(值)是否保留插入顺序?_Java_Linkedhashmap_Insertion Order - Fatal编程技术网

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文档的第一句话: ... 映射接口的实现,具有可预测的迭代顺序。。。。这通常是将关键点插入地图的顺序(插入顺序)


如果重新插入一个键(可能使用不同的值),它不会更改原始顺序。

它保持键的插入顺序(不是值)。它保持键的插入顺序(不是值)。