Map<String, String> map =
new
HashMap<String, String>();
map.put(
"AA"
,
"aa"
);
map.put(
"BB"
,
"bb"
);
map.put(
"CC"
,
"cc"
);
map.put(
"DD"
,
"dd"
);
// 返回此映射中包含的映射關係的Set集合
Set<Entry<String, String>> set = map.entrySet();
for
(Entry<String, String> entry: set)
{
//每個Entry就是map中一個key及其它對應的value被重新封裝的對象
System.out.println(entry.getKey() +
" "
+ entry.getValue());
}
// 運行結果
// AA aa
// BB bb
// CC cc
// DD dd
------------------------------------------------------------------------------------------------------
原文:http://blog.csdn.net/magi1201/article/details/41968495
map是java中非常常用的一种数据结构,但map不同于set和list都继承自Collection接口。
所以map没有实现Collection的Iterator 方法,自身没有迭代器来遍历元素。
构造一个map
- Map<String, String> map = new HashMap<String, String>();
- map.put("001", "hello");
- map.put("002", "world");
- map.put("003", "main");
这里我们介绍常用的四种方式:keySet集合迭代,entrySet集合迭代,keySet 集合for-each 循环,entrySet集合for-each循环。
方法1 keySet集合迭代
- // method1
- Set<String> keySet = map.keySet();
- Iterator<String> it = keySet.iterator();
- while (it.hasNext()) {
- String key = it.next();
- System.out.println(key + "=" + map.get(key));
- }
方法2 entrySet集合迭代
- // method2
- Set<Map.Entry<String, String>> entrySet = map.entrySet();
- Iterator<Map.Entry<String, String>> meIt = entrySet.iterator();
- while (meIt.hasNext()) {
- Entry<String, String> entry = meIt.next();
- System.out.println(entry.getKey() + "=" + entry.getValue());
- }
方法3 keySet集合for-each循环
- // method3
- for (String key : map.keySet()) {
- System.out.println(key + "=" + map.get(key));
- }
方法4 entrySet集合for-each循环
- // method4
- for (Map.Entry<String, String> entry : map.entrySet()) {
- System.out.println(entry.getKey() + "=" + entry.getValue());
- }
四种方式中,method1 和 method2 是通过迭代器来显示完成的,method3 和 method4 是通过for-each来隐式的通过迭代器来完成的。
同时 method1 和 method3 是通过key的集合来完成的,method2 和 method4 是通过entry 的集合来完成的。
方法1 和方法2 的区别
一个是获取keySet ,一个是获取entrySet
推荐使用entrySet 的方式去获取,查看map通过key获取value的方法
- public V get(Object key) {
- if (key == null)
- return getForNullKey();
- Entry<K,V> entry = getEntry(key);
- return null == entry ? null : entry.getValue();
- }
map 接口还有一个方法 values() ,由于仅能取到所有的value值,而取不到key值,所以在这里就算不上遍历map了,只能算上遍历map的value值。