初次接触Map时,发现这个东西变数很大,近日略微研究之后发现这是一个很好的玩意,值得深入研究,这里记录一下Map的四种遍历方法。
参考文章:http://www.cnblogs.com/blest-future/p/4628871.html
话不多说,直接贴代码。
package com.cn.java.map.hashMap;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/** * @author feifz:
* @date :2017年6月29日 下午5:07:09
* @return
* @desc
*/
public class MapTraversalForStringDemo {
public static void main(String[] args) {
Map<String ,String> mapString = new HashMap<String, String>();
mapString.put("name", "Jerry");
mapString.put("age", "18");
mapString.put("hobby", "打豆豆");
System.out.println("第一种:通过Map.keySet遍历key和value:");
for (String in : mapString.keySet()) {
//map.keySet()返回的是所有key的值
String str = mapString.get(in);//得到每个key多对用value的值
System.out.println(in + " " + str);
}
// 第二种:
System.out.println("------------------------------------------------------------------------------------------------------------------------");
System.out.println("第二种:通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = mapString.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
// 第三种:推荐,尤其是容量大时
System.out.println("------------------------------------------------------------------------------------------------------------------------");
System.out.println("第三种:通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : mapString.entrySet()) {
//Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
//entry.getKey() ;entry.getValue(); entry.setValue();
//map.entrySet() 返回此映射中包含的映射关系的 Set视图。
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}
// 第四种:
System.out.println("------------------------------------------------------------------------------------------------------------------------");
System.out.println("第四种:通过Map.values()遍历所有的value,但不能遍历key");
for (String v : mapString.values()) {
System.out.println("value= " + v);
}
}
}