对于像这样的地图:
Map<Integer, Integer> map = ...;
map.put(1, 1);
map.put(2, 2);
map.put(3, 3);
map.put(4, 4);
Run Code Online (Sandbox Code Playgroud)
这个代码是......
for (Integer i : map.keySet()) System.out.println(i);
for (Integer i : map.values()) System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
...保证两次打印相同的序列?
如果没有,例如有任何保证java.util.HashMap吗?
par*_*fal 17
不,没有保证,虽然在实践中它会发生(没有充分的理由让地图为键和值使用不同的迭代器).
如果要保证迭代顺序,请迭代entrySet():
for (Map.Entry<Integer,Integer> entry : map.entrySet())
// ...
Run Code Online (Sandbox Code Playgroud)
既然你问了一下HashMap,请注意,由于mapbeing重新定义,对地图的任何更改都可能会改变迭代顺序.
| 归档时间: |
|
| 查看次数: |
4779 次 |
| 最近记录: |