黑马程序员技术交流社区
标题:
map集合中如何使用entrySet()遍历啊
[打印本页]
作者:
于连林
时间:
2012-10-23 15:14
标题:
map集合中如何使用entrySet()遍历啊
这个是不是返回set集合,然后用迭代器遍历set集合?
作者:
hello_world!
时间:
2012-10-23 15:33
是的;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapDemo {
public static void main(String[] args) {
new MapDemo().init();
}
void init(){
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("zhangsan1", 20);
map.put("zhangsan2", 21);
map.put("zhangsan3", 22);
map.put("zhangsan4", 23);
//说明方法一:高效一些,对比方法二你会发现,它只会读一次Map集合,而方法二,会读两次读map集合。 而读map集合是比较耗资源的
System.out.println("方法一-------------------------------------------");
Set<Entry<String, Integer>> set = map.entrySet();
for (Entry<String, Integer> entry : set) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
System.out.println("方法二-------------------------------------------");
Set<String> keys = map.keySet();
for (String string : keys) {
System.out.println(string + ":" + map.get(string));
}
}
}
作者:
zhaosenyang
时间:
2012-10-25 00:22
看视频,模板代码…
作者:
唐进
时间:
2012-10-25 00:27
它返回的就是一个set集合,集合里装的就是Map.Entry对象,这个对象就是存的map的键值,可以通过相应的方法得到map的键和值
作者:
崔政
时间:
2012-10-25 16:49
是的。
视频中毕老师也提到了。map是如何遍历的。
先转set,在通过迭代器获取。
TreeMap<Student,String> tm=new TreeMap<Student,String>(new StuNameComparator());
tm.put(new Student("zhangsan",29),"shanghai");
tm.put(new Student("zhangsan",20),"nanjing");
tm.put(new Student("lisi",22),"beijing");
tm.put(new Student("wangwu",23),"shanxi");
tm.put(new Student("chenliu",25),"henan");
Set<Map.Entry<Student,String>> entrySet=tm.entrySet(); //转成set
Iterator<Map.Entry<Student,String>> it=entrySet.iterator();//通过遍历获得
复制代码
感觉Map.Entry<K,V>感觉好牛
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2