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张图片