【发布时间】:2014-05-07 18:12:16
【问题描述】:
在类似于
的那段代码中//something before
Iteration<String> iterator = hashMap.keySet().iterator();// HashMap<String, Document>
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//something after
我知道打印的顺序可能会因entry的插入顺序而不同key,value;好的。
但是如果我在另一个时刻调用这个片段,重新创建变量 hashMap 并将它们放在相等的元素中,那么第二时刻的时间打印可以与第一次打印不同吗?
我的问题是由一个网络应用程序的问题引起的:我在 JSP 中有一个 String 列表,但是,几年后,客户致电,因为 的顺序字符串在早上不同,但在下午显示通常的顺序。
问题仅在一天之内就发生了:网络应用程序使用解释的代码获取 Map 并填充 ArrayList。
这个 ArrayList 没有任何明确的顺序更改(没有 Comparator 或类似的类)。
我认为(希望)不同打印顺序的原因是在运行时同一 HashMap 中的不同迭代顺序导致的,我正在寻找其他人的验证。
在网上,我读到如果 HashMap 收到修改,HashMap 的迭代顺序会发生变化:但是如果 HashMap 会发生什么> 保持不变?
【问题讨论】:
-
Hash map 文档说 HashMap 不保证 map 的顺序;特别是,它不保证订单会随着时间的推移保持不变。
-
好的,我可以接受这个回复:你能给我一个链接或显示这句话的源代码吗?如果您写回复,我会选择您的回复为“最佳回复”
-
谢谢.. 我将此评论移至回答部分
标签: java collections map iterator