相关疑难解决方法(0)

Java HashMap的keySet()迭代顺序是否一致?

我知道从M​​ap的keySet()方法返回的Set不保证任何特定的顺序.

我的问题是,它是否保证多次迭代的相同顺序.例如

Map<K,V> map = getMap();

for( K k : map.keySet() )
{
}

...

for( K k : map.keySet() )
{
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,假设映射不修改,将迭代在按键组处于相同的顺序.使用Sun的jdk15它会以相同的顺序迭代,但在我依赖于这种行为之前,我想知道所有JDK是否都会这样做.

编辑

我从答案中看到我不能依赖它.太糟糕了.我希望不必为了保证我的订购而建立一些新的收藏品.我的代码需要迭代,执行一些逻辑,然后使用相同的顺序再次迭代.我将从keySet创建一个新的ArrayList,这将保证顺序.

java iteration hashmap hashset

71
推荐指数
5
解决办法
6万
查看次数

从地图获取数组并转换键

我有一个map<String, Object>和一个数组int[]应该包含地图键.有没有一个很好的简短方法将键转换为int,而不使用循环?

myArray = myMap.keySet().toArray(new int[5]);
Run Code Online (Sandbox Code Playgroud)

我用Java 8.谢谢!

java arrays

1
推荐指数
1
解决办法
380
查看次数

标签 统计

java ×2

arrays ×1

hashmap ×1

hashset ×1

iteration ×1