黑马程序员技术交流社区

标题: 关于Map集合的总结 [打印本页]

作者: HARRY_yFd0S    时间: 2016-9-9 14:52
标题: 关于Map集合的总结
1.Map集合:
    1.双列集合. 存储时是以键值对的形式存储的   key : value
        Map集合中的所有特点都是针对键的,与值无关!

    2.Map集合与Set集合的关系:
        Set集合的底层是由Map集合实现的!
        HashSet集合是由HashMap实现的
        TreeSet是由TreeMap实现的.


    3.Map中的常用方法:
        增:
            put(key,value): 返回的是被覆盖的值.

        删:
            remove(key): 根据键删除元素.
            clear(): 清空集合!

        改:
            put(key,value)

        查:
            判断功能:
                containsKey(key):判断集合中是否包含指定的key
                containsValue(value): 判断集合中是否包含指定的value.
                    注意: Map中没有contains方法!

                isEmpty(): 判断集合是否为空!


            长度:
                size(): 返回集合的长度.

            获取功能:
                values(): 把Map集合中的所有value存储到一个Collection集合中,并返回该Collection集合!
                get(key): 根据key获取对应的value
                keySet(): 把Map集合中的所有key封装到一个Set集合中,并返回该Set集合!返回值是Set类型
                entrySet(): 把集合中的键值对封装成键值对对象,并封装成一个Set集合,返回该Set集合.


    4.Map集合的遍历:
        1.通过keySet方法得到所有的key. 遍历这个Set集合, 得到每一个key, 再通过get(key)方法得到每一个key对应的值.

        2.通过entrySet方法得到Entry对象的Set集合,遍历这个Set集合,得到每一个Entry对象,
            再通过Entry对象中的getKey()方法得到key. 通过getValue()方法得到值.



    5.HashMap集合:
        存储元素时, key需要重写hashCode方法和equals方法!

    6.LinkedHashMap集合(了解):
        特点: 可以保证怎么存就怎么取!

    7.TreeMap集合:
        特点:
            可以对集合中的key进行排序.
            1.让key对象实现Comparable接口,并重写compareTo方法(自然排序)
            2.从构造方法传入一个Comparator子类对象,按照比较器的方式对key进行排序(比较器排序)


    8.HashMap和Hashtable的区别:
        1.共同点:
            底层都是hash算法结构
            都是双列集合

        2.区别:
            1.HashMap是线程不安全的,效率高!从JDK1.2出现的.
              Hashtable是线程安全的,效率低,从JDK1.0的时候出现的

            2.HashMap可以存储null键和null值
                Hashtable不可以存储null键和null值.


2.Collections工具类:   
    1.常用方法:
        sort(List): 对集合中的内容进行排序        (掌握)
        binarySearch(List,key): 二分查找        (了解)   
        max(List): 获取集合中的最大值            (了解)
        reverse(List): 对集合中的内容进行反转    (掌握)
        shuffle(List): 随机置换集合中的元素位置.(了解)







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