Map<String, String> map = new LinkedHashMap<String, String>();
map.put("1", "aaa");
map.put("2", "bbb");
map.put("3", "ccc");
// 传统方式一
Set<String> set1 = map.keySet();
Iterator<String> it1 = set1.iterator();
while (it1.hasNext()) {
String key = it1.next();
String value = map.get(key);
System.out.println(key + ":" + value);
}
// 传统方式二
Set<Map.Entry<String, String>> set2 = map.entrySet();
Iterator<Map.Entry<String, String>> it2 = set2.iterator();
while (it2.hasNext()) {
Map.Entry<String, String> entry = it2.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
map.put("1", "aaa");
map.put("2", "bbb");
map.put("3", "ccc");
// 传统方式一
Set<String> set1 = map.keySet();
Iterator<String> it1 = set1.iterator();
while (it1.hasNext()) {
String key = it1.next();
String value = map.get(key);
System.out.println(key + ":" + value);
}
// 传统方式二
Set<Map.Entry<String, String>> set2 = map.entrySet();
Iterator<Map.Entry<String, String>> it2 = set2.iterator();
while (it2.hasNext()) {
Map.Entry<String, String> entry = it2.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
需要注意:
1. Map<String, String> map = new LinkedHashMap<String, String>();
这里Map实例化的是LinkedHashMap,而不是HashMap.
原因:HashMap的底层是哈希算法,遍历此Map中的数据时,输出数据的顺序与输入数据的顺序不能够保持一致.
而LinkedHashMap的底层是链表,它能够保证数据的输出顺序与输入顺序保持一致,故用LinkedHashMap.
在实际开发中,是需要保证数据的输入与输出顺序一致的.