使用HashMap进行赋值,然后遍历
Map<String, String> stringMap = new HashMap<>();
for (int i = 0; i < 10; i++) {
stringMap.put("key" + i, "value" + i);
}
for (Map.Entry<String, String> entry : stringMap.entrySet()) {
System.out.println(entry.getKey() + "..." + entry.getValue());
}
遍历结果如下
发现得到的元素不是按照之前加入HashMap的顺序输出的,这个问题我之前倒是没有注意过,后来上网查了一下原因,发现是:HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。甚至可以rehash()重新散列,来获得更利于随机存取的内部顺序。
总之,遍历HashMap或Hashtable时不要求顺序输出,即与顺序无关。
可以用LinkedHashMap 就是按加入时的顺序遍历了。
Map<String, String> stringMap = new LinkedHashMap<>();
for (int i = 0; i < 10; i++) {
stringMap.put("key" + i, "value" + i);
}
for (Map.Entry<String, String> entry : stringMap.entrySet()) {
System.out.println(entry.getKey() + "..." + entry.getValue());
}