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

© 卞建彬 中级黑马   /  2018-9-20 15:37  /  734 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刘鹏:

栈的特点:
         先进后出 (FILO,First In Last Out)
         入口和出口在同一侧
         
入栈(压栈): 将元素存入栈
出栈(弹栈): 从栈中取出元素
栈的适用场景:
         栈内存 (main方法先进栈调用, main方法中的其他方法都调用完毕后, main才能出栈)
         反转内容 (车尾变车头, 进去再出来就反转了)
队列的特点:
         先进先出 (FIFO,First In First Out)
    入口和出口在两端
   
队列的适用场景:
         秒杀, 抢购
         在线售票
         处理高并发场景
数组的特点:
         查询快: 通过 (第一个元素地址值 + 索引) 可以快速计算出该索引元素的地址值
         增删慢: 增加一个元素, 要创建长度+1的新数组, 然后将原数组元素复制到新数组, 然后存入新元素; 删除类似
数组的适用场景:
         查询多, 增删少的数据存储场景   国内城市
链表的特点:
         查询慢: 要找到其中某个节点, 只能从第一个节点一个一个向后寻找
         增删快: 只需要修改保存的下一个节点的地址值, 就可以快速完成增删
ArrayList底层的数据结构:
         数组
         
ArrayList的特点:
         查询快
         增删慢
         线程不安全, 效率高
         
ArrayList适用场景:
         存储的数据"查询多, 增删少"的场景. 如用一个ArrayList存储中国城市名称
Map集合特点:
         1.是双列集合, 一个元素包含两个值 (key, value) 键值对
         2.keyvalue的类型可以相同, 也可以不同
         3.key不允许重复, value可以重复
         4.keyvalue是一一对应的, 一个键只能对应一个值
java.util.Map<K, V>接口: 双列集合的根接口, 规定了共性的方法
         |
         |_HashMap<K, V>: 底层哈希表. key存取无序不可重复  
                   |_LinkedHashMap<K, V>: 底层哈希表+链表. key存取有序不可重复
                  
映射: 键和值的对应关系 mapping
HashSet底层使用的就是HashMap
LinkedHashSet底层使用的就是LinkedHashMap
keySet()遍历步骤:
         1.Map对象调用 keySet() 方法, 获取包含所有keySet集合
         2.遍历Set集合, 获取每个key
         3.通过Map对象调用 get(Object key) 方法根据key获取到value
java.util.Map.Entry接口:
         //常用成员方法
         K getKey():获取Entry对象中的键
         V getValue():获取Entry对象中的值
entrySet()方法遍历Map步骤:
         1.Map对象调用 entrySet() 获取包含所有Entry对象的Set集合
         2.遍历Set集合, 获取每个Entry对象
         3.调用Entry对象的getKey() getValue() 方法获取键和值



0 个回复

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