我理解从 Map 的 keySet ()方法返回的 Set 不保证任何特定顺序。
我的问题是,它是否保证了多次迭代中 一样的顺序
Map<K,V> map = getMap();
for( K k : map.keySet() )
{
}
...
for( K k : map.keySet() )
{
}
在上面的代码中,假设映射被修改为 没有,那么对 keySet 的迭代将按照相同的顺序进行。使用 Sun 的 jdk15 it 是的以相同的顺序迭代,但是在我依赖这种行为之前,我想知道是否所有的 JDK 都会这样做。
剪辑
我从答案中看出,我不能依赖它。真可惜。我希望不必建立一些新的收藏品来保证我的订单。我的代码需要进行迭代,执行一些逻辑,然后以相同的顺序再次进行迭代。我将从 keySet 创建一个新的 ArrayList,它将保证顺序。