黑马程序员技术交流社区

标题: [哈尔滨校区]双列集合两种遍历方式 [打印本页]

作者: dawei    时间: 2016-2-28 13:58
标题: [哈尔滨校区]双列集合两种遍历方式
方式一:通过keySet()获取所有键的集合,然后遍历键的集合,获取到每一个键,然后通过getKey()方法
                        获取每一个值,这样把键和值一一对应的找出来了 就遍历了集合
                       
                        需要用到的方法:
                                V get(Object key):根据键获取值
                                Set<K> keySet():获取集合中所有键的集合
                        代码演示:
                        public static void main(String[] args) {
                                Map<String, Integer> map = new HashMap<>();
                                map.put("张三", 23);
                                map.put("李四", 24);
                                map.put("王五", 25);
                                map.put("赵六", 26);
                               
                                //获取所有的键
                                /*
                                Set<String> keySet = map.keySet();                //获取所有键的集合
                                Iterator<String> it = keySet.iterator();        //获取迭代器
                                while(it.hasNext()) {                                //判断集合中是否有元素
                                        String key = it.next();                        //获取每一个键
                                        Integer value = map.get(key);                //根据键获取值
                                        System.out.println(key + "=" + value);
                                }
                                */
                               
                                //使用增强for循环遍历
                                for(String key : map.keySet()) {                //map.keySet()是所有键的集合
                                        System.out.println(key + "=" + map.get(key));
                                }
                        }
               
                方式二:通过entrySet()获取所有的键值对的集合,然后遍历键值对的集合,获取每一个键值对,
                        然后根据键值对来获取每一个键和值,这样把键和值一一对应的找出来了 就遍历了集合
                       
                        需要用到的方法:
                                Set<Map.Entry<K,V>> entrySet():获取所有的键值对的集合
                                Map.Entry接口里面的
                                        K getKey():获取键值对中的键
                                        V getValue():获取键值对中的值
                        代码演示:
                        public static void main(String[] args) {
                                Map<String, Integer> map = new HashMap<>();
                                map.put("张三", 23);
                                map.put("李四", 24);
                                map.put("王五", 25);
                                map.put("赵六", 26);
                               
                                //Map.Entry说明Entry是Map的内部接口,将 键和值的键值对 封装成了Entry对象,并存储在Set集合中
                                /*
                                Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
                                //获取每一个 键值对 对象
                                Iterator<Map.Entry<String, Integer>> it = entrySet.iterator();
                                while(it.hasNext()) {
                                        //获取每一个键值对对象
                                        Map.Entry<String, Integer> en = it.next();        //父类引用指向子类对象
                                        //Entry<String, Integer> en = it.next();        //直接获取的是子类对象
                                        String key = en.getKey();                        //根据键值对对象获取键
                                        Integer value = en.getValue();                        //根据键值对对象获取值
                                        System.out.println(key + "=" + value);
                                }
                                */
                               
                                for(Entry<String, Integer> en : map.entrySet()) {
                                        System.out.println(en.getKey() + "=" + en.getValue());
                                }
                        }






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