定义区别
keySet是键的集合,Set里面的类型即key的类型 entrySet是 键-值 对的集合,Set里面的类型是Map.Entry
区别
entrySet() 是map的一个节点,是横向的, keySet() 是map中所有键的集合,是纵向的
keySet()的速度比entrySet()慢了很多 使用entrySet则必须将map对象转换为Map.Entry,keySet则不需要代码如下:
public void maptest() throws IllegalAccessException, InvocationTargetException {
// TODO 自动生成的方法存根
Map<String, Object> m=new LinkedHashMap<String, Object>();
m.put("username","王五");
m.put("age",22);
m.put("address","河南");
m.put("sex","wu");
//entrySet是 键-值 对的集合,Set里面的类型是Map.Entry
Set<Entry<String, Object>> entry = m.entrySet();
for (Entry<String, Object> ent : entry) {
System.out.println(ent.getKey()+":"+ent.getValue());
}
System.out.println();
//keySet是键的集合,Set里面的类型即key的类型
Set<String> key = m.keySet();
System.out.println("kkey是"+key);
for (String str : key) {
System.out.println(str+":"+m.get(str));
}
}