转自(https://www.cnblogs.com/xianfengzhike/p/9140866.html)
keySet是键的集合,Set里面的类型及key的类型
entrySet是 键-值 对的集合,Set里面的类型是Map.Entry.
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);
}
package com.Text;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Maps {
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())
{
String value=map.get(key);
System.out.println(key+":"+value);
}
System.out.println("-------------------------");
//第二种:
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();
String key=entry.getKey();
String value=entry.getValue();
System.out.println(key+":"+value);
}
System.out.println("-------------------------");
//第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for(Map.Entry<String, String> entry:map.entrySet()) {
String key=entry.getKey();
String value=entry.getValue();
System.out.println(key+":"+value);
}
System.out.println("-------------------------");
//第四种
System.out.println("通过map.values()遍历所有的value,但不能遍历key");
for(String value:map.values()) {
System.out.println("value="+value);
}
}
}