public static void main(String[] args) {
MapString, String map = new HashMapString, String();
map.put(1, value1);
map.put(2, value2);
map.put(3, value3);
//第一种:普遍使用,二次取值
System.out.println(通过Map.keySet遍历key和value:);
for (String key : map.keySet()) {
System.out.println(key= + key + and value= + map.get(key));
}
//第二种
System.out.println(通过Map.entrySet使用iterator遍历key和value:);
IteratorMap.EntryString, String it = map.entrySet().iterator();
while (it.hasNext()) {
Map.EntryString, String entry = it.next();
System.out.println(key= + entry.getKey() + and value= + entry.getValue());
}
//第三种:推荐,尤其是容量大时
System.out.println(通过Map.entrySet遍历key和value);
for (Map.EntryString, String entry : map.entrySet()) {
System.out.println(key= + entry.getKey() + and value= + entry.getValue());
}
//第四种
System.out.println(通过Map.values()遍历所有的value,但不能遍历key);
for (String v : map.values()) {
System.out.println(value= + v);
}
}
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。
这里,java.util.Map也用作命名空间。 条目不属于全局范围,这意味着有许多其他实体是条目,不需要Map的条目。 这表示Entry与Map相关的条目。
因为接口不能被实例化,所以内部接口只有在是静态的时才有意义。 因此,默认inter interface是静态的,无论你手动添加静态还是不是。
![JAVA 遍历 Map的四种方法_第1张图片](http://img.e-com-net.com/image/info3/e03a1b9b72ee4d4aace0e884184fbc16.jpg)