黑马程序员技术交流社区

标题: Map的两种遍历方式 [打印本页]

作者: 307117758    时间: 2015-10-27 23:01
标题: Map的两种遍历方式
A:丈夫找妻
                        a:把所有丈夫给集合起来。Set<K> ketSet()
                        b:遍历丈夫集合,获取到每一个丈夫。增强for , 迭代器
                        c:让丈夫去找妻子。get(Object key)
                        // 创建集合对象
                        Map<String, String> map = new HashMap<String, String>();
                        // 往集合里边添加元素
                        map.put("郭靖", "黄蓉");
                        map.put("杨过", "小龙女");
                        map.put("牛郎", "侄女");
                        map.put("萧炎", "萧薰儿");
                        // 方式1 遍历,"丈夫找妻子"
                        // 得到所有的丈夫对象
                        Set<String> husbandSet = map.keySet();

                        // 用迭代器的方式来做
                        Iterator it = husbandSet.iterator();
                        while(it.hasNext())
                        {
                                String husband = (String)it.next();
                                String wife = map.get(husband);
                                System.out.println(husband +"-----"+ wife);
                        }
                        // 用增强for来做
                        for (String s : husbandSet) {
                                // 根据“丈夫”找到“妻子”--根据键获取值
                                String wife = map.get(s);
                                System.out.println(s + "******" + wife);
                        }

B:根据结婚证找丈夫和妻
                         a:获取所有结婚证的集合。Set<> entrySet()
                         b:遍历结婚证集合,获取到每一个结婚证对象。迭代器,增强for
                         c:通过结婚证对象获取丈夫和妻子getKey()和getValue()

                         // 创建集合对象
                        Map<String, String> map = new HashMap<String, String>();
                        // 往集合里边添加元素
                        map.put("郭靖", "黄蓉");
                        map.put("杨过", "小龙女");
                        map.put("牛郎", "侄女");
                        map.put("萧炎", "萧薰儿");
                        // 找到所有的“结婚证”,也就是所有的键值对
                        Set<Map.Entry<String, String>> set = map.entrySet();
                        // 方式2 遍历,这样每次遍历我都会得到一个键值对
                        for (Map.Entry<String, String> en : set) {
                                // 得到键和值,然后打印
                                String key = en.getKey();
                                String value = en.getValue();
                                System.out.println(key + "****" + value);
                        }






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