黑马程序员技术交流社区
标题:
HashMap中keySet和entrySet两种取出方式有什么区别?
[打印本页]
作者:
程佳佳
时间:
2011-11-24 15:56
标题:
HashMap中keySet和entrySet两种取出方式有什么区别?
本帖最后由 程佳佳 于 2011-11-24 16:48 编辑
HashMap中keySet和entrySet两种取出方式有什么区别?
作者:
冯敏
时间:
2011-11-24 16:10
keySet和entrySet是对HashMap常用的两种遍历方法,对于keySet其实是遍历了2次,一次是转为iterator(遍历器),一次就从HashMap中取出key所对于的value,而entryset只是遍历了一次,他把key和value都放到了entry中,这个样的话,用entryset遍历会比较快噢,如下:可以一次得到key和value
for(Map.Entry<Person, String> temp : map.entrySet())
System.out.println(temp.getKey()+" "+temp.getValue());
}
作者:
侯伟浩
时间:
2011-11-24 16:21
根本就是两种方法。首先返回值不同,keySet返回值为Set<K>集合 ( 返回此映射中包含的键的 Set 视图)。
entrySet返回值为Set<Map.Entry<K,V>> (返回此映射中包含的映射关系的 Set 视图)。
范例:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Demo {
public static void main(String args[])
{
HashMap<String,String> hm=new HashMap<String,String>();
hm.put("NO1", "hello");
hm.put("NO2", "world");
Set<String> se=hm.keySet();
Iterator<String> ite=se.iterator();
while(ite.hasNext())
{
//只能输出key的值
System.out.println(ite.next());
}
Set<Map.Entry<String,String>> se2=hm.entrySet();
Iterator<Map.Entry<String,String>> ite2=se2.iterator();
while(ite2.hasNext())
{
//可以输出key和value的值
System.out.println(ite2.next());
}
}
}
运行一下你就可以体会到两种方法的不同处了。
作者:
程佳佳
时间:
2011-11-24 16:48
知道了,谢谢啦
作者:
後天__牛永志
时间:
2011-11-24 16:55
keySet(),取出的是key的集合,得到了key的集合,就康可以取出value的值了
entrySet()取出的是key和value这两个在一起的集合。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2