keySet,entrySet用法 以及遍历map的用法


Set<K> keySet() //返回值是个只存放key值的Set集合(集合中无序存放的)

Set<Map.Entry<K,V>> entrySet() //返回映射所包含的映射关系的Set集合(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。

1.keySet()

     
Map map=new HashMap();

     
Iterator it=map.keySet().iterator();

     
Object key;

     
Object value;

     
while(it.hasNext()){

     
key=it.next();

    
value=map.get(key);

     
System.out.println(key+":"+value);

  
}

 


2.entrySet()

 

    
Map map=new HashMap();

   
Iterator it=map.entrySet().iterator();

   
Object key;

   
Object value;

   
while(it.hasNext()){

   
Map.Entry entry = (Map.Entry)it.next();

   
key=entry.getKey();

   
value=entry.getValue();

   
System.out.println(key+"="+value);

 
}

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 value= " + 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() + " and value= " + entry.getValue());
} //第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, 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);
}
}
上一篇:JAVA基础--方法的重写overwrite 和 重载overload


下一篇:TestNG entryset的用法及遍历map的用法