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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 图图_黑马 初级黑马   /  2015-6-23 16:02  /  520 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、Map集合:形式Map(K,V)
(1)Map集合为双列集合,每一次添加一对元素。(类比Collection,Collection为单列集合,每一次添加一个元素)。
(2)Map集合存放的元素为键值对(Key,Value)。
(3)Map集合中键值(Key)具有唯一性。一个键只能对应一个值,但是一个值可能对应出现多个键。
     如果后续要存储的键值对中的键在集合中一存在,则新的键值对中的值替换旧的值(存相同键值会覆盖)。

2、常用方法:
(1)添加:
    value put(key,value);    返回值:返回前一个和key关联的值,如果没有返回null;如果有返回旧值。
(2)删除:
    void clear();    清空Map集合
    value remove(Object key); 删除键值对,返回该键对应的值。
(3)判断:
    boolean containsKey(Object key);
    boolean containsValue(Object value);
    boolean isEmpty();
(4)获取:
    value get(Object key);如果没有该键返回null
    int size();键值对个数

3、Map集合遍历键值对方式:
     1.Map没有迭代器方法,故要遍历访问Map集合中的所有元素需要通过Map列出的所有方法中另想办法:
    (1)获取到Map集合中的所有key;       Set<Key> keySet()
    (2)遍历key,通过key获取该key对应的value。 value get(Object key)

     2.通过键值对Entry<Key,Value>中的getKey和getValue方法获取键值对
    (1)获取键值对集合;Set<Map.Entry<Key,Value>> set = map.entrySet();
    (2)通过迭代器遍历键值对实体,通过实体的getKey和getValue方法获取对应的键值对。
        for (Iterator<Entry<Key, Value>> iterator = entrySet.iterator(); iterator.hasNext();) {
            Entry<Key, Value> entry = (Entry<Key, Value>) iterator.next();
            System.out.print("<"+entry.getKey()+","+entry.getValue()+"> ");
        }

4、Map常用的子类:
    Hashtable:内部数据结构是哈希表,是同步的。不允许null作为键,也不允许null作为值。
    HashMap:内部数据结构是哈希表,是不同步的。允许null作为键或值。
    TreeMap:内部数据结构是二叉树,是不同步的。可以对Map集合中的键进行排序。

5、Map常用子类保证键唯一的方式:
    HashMap:集合键值对中键元素要实现hashCode和equals方法。
    TreeMap:两种方式:
        (1)集合键值对中键元素要实现CompareTo方法(按照排序规则)
        (2)根据规则自定义一个比较器,再使用带有该比较器作为参数的构造函数初始化TreeMap对象。
   


6 个回复

倒序浏览
感谢分享!
回复 使用道具 举报
路过,看了一下
回复 使用道具 举报
谢谢分享!!!
回复 使用道具 举报
总结,,,顶一顶
回复 使用道具 举报
感觉是难点
回复 使用道具 举报
谢谢总结,赶集不经
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马