Map是java中的接口,Map.Entry是Map的一个内部接口。
Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。
下面是遍历Map的四种方法:
package script;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MapDemo {
public static void main(String[] args){
Map<String,String> map=new HashMap<String,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 vlaue= "+map.get(key));
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String,String>> it=map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String,String> entry=it.next();
System.out.println("key= "+entry.getKey()+", value= "+entry.getValue());
//System.out.println(entry.getClass());
}
//第三种
System.out.println("通过Map.entrySet遍历key和value");
for(Map.Entry<String,String> entry:map.entrySet()){
System.out.println("key= "+entry.getKey()+", value= "+entry.getValue());
}
//第四种
System.out.println("通过Map.values遍历所有的value,但不能遍历key");
for(String v:map.values()){
System.out.println("value="+v);
}
}
}
运行结果:
通过Map.KeySet遍历key和value:
key=1 and vlaue= value1
key=2 and vlaue= value2
key=3 and vlaue= value3
通过Map.entrySet使用iterator遍历key和value:
key= 1, value= value1
key= 2, value= value2
key= 3, value= value3
通过Map.entrySet遍历key和value
key= 1, value= value1
key= 2, value= value2
key= 3, value= value3
通过Map.values遍历所有的value,但不能遍历key
value=value1
value=value2
value=value3