我正在尝试找出可以检索HashMap中的值的顺序.下面是代码片段.
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<Integer, String> hashmap = new HashMap<Integer, String>();
hashmap.put(1, "apple" );
hashmap.put(2, "lemon" );
hashmap.put(3, "orange" );
hashmap.put(4, "banana" );
hashmap.put(5, "litchi" );
hashmap.put(6, "mango" );
hashmap.put(7, "papaya" );
System.out.println(hashmap.size());
for (String key : hashmap.values()) {
System.out.println(key);
}
}
}
Run Code Online (Sandbox Code Playgroud)
7
apple
lemon
orange
banana
litchi
mango
papaya
Run Code Online (Sandbox Code Playgroud)
值按插入顺序打印.一般来说这是真的吗?我期待值以任意顺序打印.这是使用Java 6.
我有一个HashMap定义如下:
public Map<Integer, String> staticBlockPositions = new HashMap<Integer, String>();
我通过获取每个键来迭代地图,如下所示:
for (Integer key : blockPositions.keySet()) {
System.out.println(key);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我可以依靠值key始终按升序排列.所以,如果我的HashMap看起来像这样:
{
4: "abc123",
1: "def456",
11: "qwe789",
10: "iop019"
}
Run Code Online (Sandbox Code Playgroud)
(我知道这是JSON格式,这只是让你了解数据集).
请问我的循环总是输出
1
4
10
11
Run Code Online (Sandbox Code Playgroud)
不管我的数据顺序如何?
需要注意的是,添加密钥的顺序是完全随机的,我无法控制何时添加密钥.
这是一个俄罗斯方块风格的游戏,所以按升序获得键是必须的.