黑马程序员技术交流社区

标题: 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,在通过迭代器获取。
  1. TreeMap<Student,String> tm=new TreeMap<Student,String>(new StuNameComparator());
  2.                 tm.put(new Student("zhangsan",29),"shanghai");
  3.                 tm.put(new Student("zhangsan",20),"nanjing");
  4.                 tm.put(new Student("lisi",22),"beijing");
  5.                 tm.put(new Student("wangwu",23),"shanxi");
  6.                 tm.put(new Student("chenliu",25),"henan");

  7.                 Set<Map.Entry<Student,String>> entrySet=tm.entrySet();   //转成set
  8.                 Iterator<Map.Entry<Student,String>> it=entrySet.iterator();//通过遍历获得
复制代码
感觉Map.Entry<K,V>感觉好牛




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2