在遍歷Map集合之前首先先定義一個(gè)Map對(duì)象:
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("1", "one");
map.put("2", "two");
map.put("3", "three");
map.put("4", "fore");
map.put("5", "five");
這個(gè)地方使用的是LinkedHashMap,主要是為了確保讓map中的元素是按照插入的順序存放的。
1. 使用keySet()方法遍歷
使用keyset方法遍歷,是先取出map的key組成的Set集合,通過對(duì)Set集合的遍歷,然后使用map.get(key)方法取出value值。
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
2. 使用map的values()方法遍歷集合的values
map.values()返回的是由map的值組成的Collection,這個(gè)方法只能遍歷map的所有value,不能得到map的key。
for (String value : map.values()) {
System.out.println(value);
}
3. 使用map的entrySet()方法遍歷
使用map的entrySet()方法返回一個(gè)以Entry為元素的Set集合,然后對(duì)Set集合進(jìn)行遍歷。
for (Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
4. 通過keySet()返回的集合的iterator遍歷
由于map.keySet()返回的是一個(gè)Set集合,所以通過它的iterator()方法返回一個(gè)迭代器,通過迭代器遍歷map。
Iterator<String> it = map.keySet().iterator();
while(it1.hasNext()) {
String key = it1.next();
System.out.println(key + " : " + map.get(key));
}
5. 通過values()返回的Collection的iterator遍歷
map.values()方法返回的是一個(gè)Collection對(duì)象,這個(gè)集合對(duì)象可以使用iterator方法訪問。
Iterator<String> it = map.values().iterator();
while(it1.hasNext()) {
String key = it1.next();
System.out.println(key + " : " + map.get(key));
}
6. 通過entrySet()返回的Set的iterator遍歷
同上,map.entrySet()方法返回的是一個(gè)Set<Entry<String, String?類型的集合,可以使用iterator來訪問該集合。
Iterator<Entry<String, String>> it = map.entrySet().iterator();
while(it3.hasNext()) {
Entry<String, String> entry = it3.next();
System.out.println(entry.getKey() + " : " + entry.getValue());
}
以上總結(jié)了對(duì)map集合的集中遍歷方式,根據(jù)自身需要靈活選擇使用哪種方式。