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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈鹏No1 中级黑马   /  2015-7-27 14:04  /  462 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Map特点:该集合存储键值对。是一对一对往里存,而且要保证键的唯一性。
Map功能:
1,添加。
        put(K,V)//如果添加时,有相同的键,那么后添加的值会覆盖原有键对应值。并put方法会返回被覆盖的值。
        putAll(Map<? Extends K,? Extends V> t)
2,删除。
        clear();
        remove(k)
3,判断。
        containsValue(Object value)
        containsKey(Object key)
        isEmpty();
        get();//键值不存在返回null
4,获取。
        get();
        size():
        values();//Map集合中所有的值
        Set<k>  keySet():将map中所有的键存入到Set集合。因为set具备迭代器。所以可以用迭代的方法取出所有的键,再根据get方法,获取每一个键对应的值。
                Map<String,String> map = new HashMap<String,String>();
                map.put("01","zs1");
                Set<String> keySet = map.KeySet();//键值存入
                Iterator<String> it = keySet.Iterator();
                …
                String value = map.get(key);
               
        Map集合的取出原理:将map集合转换成set集合,再通过set集合器取出。
       
        Set<Map.Entry<k,v>>    entrySet():将map集合中的映射关系存入到了set集合中。而这个关系的数据类型是Map.Entry<K,V>。那么关系对象Map.Entry获取到后,就可以通过May,Entry中的getKey和getValue获取键和值。
                Map<String,String> map = new HashMap<String,String>();
                map.put("01","zs1");
                Set<Map.Entry<String,String>> entrySet = map.entrySet();//关系存入
                Iterator<Map.Entry<String,String>> it = entrySet.Iterator();//set迭代器
                while(it.hasNext())
                {
                        Map.Entry<String,String> me = it.next();
                        String key = me.getKey();
                        String value = me.getValue();
                        sop(key+value);
                }
        Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口。
                interface Map
                {
                        public static interface Entry//内部接口
                        {
                                public abstract Object getKey();
                                public abstract Object getValue();
                        }
                }
                class HashMap implements Map
                {
                        class ha implements Map.Entry
                        {
                                public Object getKey(){}
                                public Object getValue(){}
                        }
                }
                注意:只有有了map集合才有关系,所以把Entry定义为内部接口,可直接访问内部数据!
       
Map子集合:
        HashTable:底层是哈希表数据结构,不可以存入null键null值。线程同步。JDK1.0出现,效率低。
        HashMap:底层是哈希表数据结构,允许存入null键null值。线程不同步。JDK1.2出现,效率高。
        TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。

Map和Set很像,其实Set底层就是Map。

什么时候使用map集合?当数据之间存在映射关系时,就要先想到map集合。


map可以有一对多的情况。一个学校对多个教室,一个教室对多个学生。

2 个回复

倒序浏览
学习一下
回复 使用道具 举报
刚学完,看一下总结
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马