黑马程序员技术交流社区

标题: Map集合的遍历之键值对对象找键和值 [打印本页]

作者: zzm0717    时间: 2016-5-7 23:32
标题: Map集合的遍历之键值对对象找键和值
键值对对象找键和值思路:
        * 获取所有键值对对象的集合
        * 遍历键值对对象的集合,获取到每一个键值对对象
        * 根据键值对对象找键和值
* B:案例演示               
* C:源码分析
图解:

案例:
package com.heima.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Demo3_Iterator {
        /**
         * Map集合的第二种迭代,根据键值对对象,获取键和值
         *  A:键值对对象找键和值思路:
                * 获取所有键值对对象的集合
                * 遍历键值对对象的集合,获取到每一个键值对对象
                * 根据键值对对象找键和值
         */
        public static void main(String[] args) {
                //demo1();
                demo2();
        }
        public static void demo1() {
                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()) {
                        //获取每一个Entry对象
                        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循环进行迭代
        public static void demo2() {
                Map<String, Integer> map = new HashMap<>();
                map.put("张三", 23);
                map.put("李四", 24);
                map.put("王五", 25);
                map.put("赵六", 26);       
                //使用增强for循环进行迭代
                for(Map.Entry<String, Integer> en : map.entrySet()) {
                        System.out.println(en.getKey() + "=" + en.getValue());
                }
        }
}
Map.Entry的分析:
package com.heima.map;
public class Demo4_MapEntry {
        /**
         * @param args
         * 解释一个Map.Entry
         */
        public static void main(String[] args) {
        }
}
interface Inter {
        interface Inter2 {
                public void show();
        }
}
class Demo implements Inter.Inter2 {
        @Override
        public void show() {
        }
       
}
作者: 张金金金    时间: 2016-5-7 23:36
感谢分享.
作者: zzm0717    时间: 2016-5-8 11:37
张金金金 发表于 2016-5-7 23:36
感谢分享.

不要客气
作者: 艺高人胆大    时间: 2016-5-8 12:00
好好好总结的好
作者: liurongcheng    时间: 2016-5-8 12:16

感谢分享.......
作者: z195061    时间: 2016-5-8 12:41
不错不错!!!
作者: zzm0717    时间: 2016-5-9 22:40
张金金金 发表于 2016-5-7 23:36
感谢分享.

客气客气
作者: zzm0717    时间: 2016-5-9 22:41
z195061 发表于 2016-5-8 12:41
不错不错!!!

还可以吧
作者: zzm0717    时间: 2016-5-9 22:42
艺高人胆大 发表于 2016-5-8 12:00
好好好总结的好

兄弟低调低调
作者: zzm0717    时间: 2016-5-10 22:16
liurongcheng 发表于 2016-5-8 12:16
感谢分享.......

不谢不谢




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