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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

就业班Map双列集合简记

Map集合
        Map集合的特点:
        1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)       
        2.Map集合中的元素,key和value的数据类型可以相同,也可以不同
        3.Map集合中的元素,key是不允许重复的
        4.Map集合中的元素,key和value是一一对应
Map常用子类
         HashMap<k,v>集合 implements Map<k,v>接口
        HashMap集合的特点:
        1.HashMap集合底层是哈希表:查询速度特别的快
                JDK1.8之前:数组+单向链表
                JDK1.8之后:数组+ 单向链表/红黑树(链表长度超过8):提高查询速度
        2.HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
        LinkedHashMap<k,v>集合extends  HashMap<k,v>集合
        LinkedHashMap的特点:
                1.LinkedHashMap集合底层是哈希表+链接(保证迭代的顺序)
                2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
Map接口中常用的方法:
        - public V put(K key, V value):  把指定的键与指定的值添加到Map集合中。
        (返回值V:       
                存储键值对时候,key不重复,返回值null
                存储键值对的时候,key重复,会使用新的value替换map中的重复法value,返回被替换的value值)


        - public V remove(Object key): 把指定的键 所对应的键值和元素 在Map集合中删除,返回被删除元素的值。


        - public V get(Object key) 根据指定的键,在Map集合中获取对应的值。


        - boolean containsKey(Object key) 判断集合中是否包含指定的键。


        - public Set<K> keySet(): 获取Map集合中所有的键存储到Set集合中。


        - public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。


Map集合遍历键找值方式
        Map中方法:
        Set<k> keySet()返回次映射中包含的键的set视图
        实现步骤:
                1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个set集合中
                2.遍历set集合,获取Map集合中的每一个key
                3.通过Map集合中的方法get(key),通过key找到value
Entry键值对对象
        Map.Entry<K.V>:在Map接口中有一个内部接口Entry
        作用:当Map集合一创建,那么就会在Map集合中创建一个        Entry对象,用来记录键与值(键值对对象,键与值的映射关系)
        实现步骤:
        Set<Map.Entry<K,V> entrySet()把Map集合内部的多个Entery对象取出来存储到一个Set集合中,
        遍历Set集合中的每一个Entry对象
        Entry对象兑现中方法getKey()获取key,getValue()获取value
HashMap存储自定义类型的键值:
        若要保证自定义类key值唯一,必须要重写hashCode方法        和equals方法,可以保证key唯一
        value可以重复
LinkedHashMap集合
        LinkedHashMap<K,V> extends HashMap<K,V>
        Map接口的哈希值和链接列表实现,具有可预知的迭代顺序.
        底层原理:
        哈希表+链接(记录元素顺序)
Hashtable集合
        Hashtable:底层也是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢
        HashMap:底层是一个哈希表,是一个线程不安全的集合,是多线程集合,速度快
        HashMap集合(之前学的所有集合):可以存储null值,null键
        Hashtable集合,不能存储null值,null键
        Hashteale和Vector集合一样,在JDK1.2版本之后被更先进的集合(HashMap,ArrayList)取代了
        Hashtable的子类Properties依然活跃在历史舞台
        Properties集合是一个唯一和IO流相结合的集合
JDK9对集合添加的优化
        JDK9的新特性
        List接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素
        static <E> List<E> of(E.....elements)
        使用前提:当集合中存储的元素个数已经确定了,不在改变时使用
        注意:
        1.of方法只适用于List接口,Map接口,不适用于接口的实现类
        2.of方法的返回值是一个不能改变的集合,集合不能再使用add,put方法添加元素,会抛出异常
        3.Set接口和Map接口在调用of方法的时候,不能有重复元素,否则会抛出异常
DeBug追踪
        DeBug调试程序
                可以让代码逐行执行,查看代码执行的过程,调        试程序中出现的bug
        使用方式:
                在行号的右边,鼠标左键单击,添加断点(每个方法的第一行,哪里有bug添加到哪里)
                右键,选择DeBug执行程序
                程序就会停留在添加的第一个断点处
        执行流程:
                f8:逐行执行程序
                f7:进入到方法中
                shift+f8:跳出方法
                f9:跳到下一个断点,如果没有下一个断点,那么就结束程序
                ctr+f2:退出debug模式,停止程序
                Console:切换到控制台


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马