黑马程序员技术交流社区

标题: Map基础认识 [打印本页]

作者: 图图_黑马    时间: 2015-6-23 16:02
标题: Map基础认识
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对象。
   



作者: 王冲6060    时间: 2015-6-23 19:24
感谢分享!
作者: Foundmoon    时间: 2015-6-23 19:44
路过,看了一下
作者: xiaodong    时间: 2015-6-24 13:52
谢谢分享!!!
作者: 爱李萝卜    时间: 2015-6-24 14:18
总结,,,顶一顶
作者: javazhang    时间: 2015-6-24 23:40
感觉是难点
作者: 发抖的_DtYJA    时间: 2015-6-24 23:46
谢谢总结,赶集不经




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