对于这样的地图:
Map<Integer, Integer> map = ...;
map.put(1, 1);
map.put(2, 2);
map.put(3, 3);
map.put(4, 4);
这段代码是不是...
for (Integer i : map.keySet()) System.out.println(i);
for (Integer i : map.values()) System.out.println(i);
...保证打印相同的序列两次?
如果没有,是否有任何保证,例如java.util.HashMap
?
不,不能保证,尽管实际上它会发生(映射没有充分的理由对键和值使用不同的迭代器)。
如果要保证迭代顺序,请迭代entrySet()
:
for (Map.Entry<Integer,Integer> entry : map.entrySet())
// ...
既然你问的是HashMap
,另请注意,由于地图被重新散列,对地图的任何更改都可能会改变迭代顺序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)