HashMap是无序的,这种无序是指put的顺序和遍历出来的顺序不一样。
LinkedHashMap是按照默认插入的顺序排列的。
public static void main(String[] args) {
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("4", "d");
map.put("1", "z");
map.put("2", "b");
map.put("3", "c");
map.put("0", "f");
map.put("10", "g");
map.put("999", "e");
System.out.println("第一种keySet遍历方式");
for (String s : map.keySet()) {
System.out.println("key:" + s + "," + "value:" + map.get(s));
}
Iterator<String> it = map.keySet().iterator();
System.out.println("第二种iterator遍历方式");
while (it.hasNext()) {
String key = it.next();
System.out.println("key:" + key + "," + " value:" + map.get(key));
}
System.out.println("————————————————华丽分割线————————————————");
Map<String, String> map1 = new HashMap<String, String>();
map1.put("4", "d");
map1.put("1", "z");
map1.put("2", "b");
map1.put("3", "c");
map1.put("0", "f");
map1.put("10", "g");
map1.put("999", "e");
System.out.println("第一种keySet遍历方式");
for (String s : map1.keySet()) {
System.out.println("key:" + s + "," + "value:" + map1.get(s));
}
System.out.println("第二种iterator遍历方式");
Iterator<String> it1 = map1.keySet().iterator();
while (it1.hasNext()) {
String key = it1.next();
System.out.println("key:" + key + "," + " value:" + map1.get(key));
}
}
结果:
第一种keySet遍历方式
key:4,value:d
key:1,value:z
key:2,value:b
key:3,value:c
key:0,value:f
key:10,value:g
key:999,value:e
第二种iterator遍历方式
key:4, value:d
key:1, value:z
key:2, value:b
key:3, value:c
key:0, value:f
key:10, value:g
key:999, value:e
————————————————华丽分割线————————————————
第一种keySet遍历方式
key:0,value:f
key:1,value:z
key:2,value:b
key:3,value:c
key:4,value:d
key:999,value:e
key:10,value:g
第二种iterator遍历方式
key:0, value:f
key:1, value:z
key:2, value:b
key:3, value:c
key:4, value:d
key:999, value:e
key:10, value:g