A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于连林 中级黑马   /  2012-10-23 15:14  /  1773 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个是不是返回set集合,然后用迭代器遍历set集合?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

4 个回复

倒序浏览
是的;
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));
                }
        }
       
}


评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
zhaosenyang 来自手机 黑马粉丝团 2012-10-25 00:22:46
藤椅
看视频,模板代码…
回复 使用道具 举报
它返回的就是一个set集合,集合里装的就是Map.Entry对象,这个对象就是存的map的键值,可以通过相应的方法得到map的键和值
回复 使用道具 举报
是的。
视频中毕老师也提到了。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>感觉好牛
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马