黑马程序员技术交流社区
标题: 酷酷的老光头 [打印本页]
作者: 卞建彬 时间: 2018-9-20 15:37
标题: 酷酷的老光头
刘鹏:
栈的特点:
先进后出 (FILO,First In Last Out)
入口和出口在同一侧
入栈(压栈): 将元素存入栈
出栈(弹栈): 从栈中取出元素
栈的适用场景:
栈内存 (main方法先进栈调用, main方法中的其他方法都调用完毕后, main才能出栈)
反转内容 (车尾变车头, 进去再出来就反转了)
队列的特点:
先进先出 (FIFO,First In First Out)
入口和出口在两端
队列的适用场景:
秒杀, 抢购
在线售票
处理高并发场景
数组的特点:
查询快: 通过 (第一个元素地址值 + 索引) 可以快速计算出该索引元素的地址值
增删慢: 增加一个元素, 要创建长度+1的新数组, 然后将原数组元素复制到新数组, 然后存入新元素; 删除类似
数组的适用场景:
查询多, 增删少的数据存储场景 国内城市
链表的特点:
查询慢: 要找到其中某个节点, 只能从第一个节点一个一个向后寻找
增删快: 只需要修改保存的下一个节点的地址值, 就可以快速完成增删
ArrayList底层的数据结构:
数组
ArrayList的特点:
查询快
增删慢
线程不安全, 效率高
ArrayList适用场景:
存储的数据"查询多, 增删少"的场景. 如用一个ArrayList存储中国城市名称
Map集合特点:
1.是双列集合, 一个元素包含两个值 (键key, 值value) 键值对
2.key和value的类型可以相同, 也可以不同
3.key不允许重复, value可以重复
4.key和value是一一对应的, 一个键只能对应一个值
java.util.Map<K, V>接口: 双列集合的根接口, 规定了共性的方法
|
|_HashMap<K, V>类: 底层哈希表. key存取无序不可重复
|_LinkedHashMap<K, V>类: 底层哈希表+链表. key存取有序不可重复
映射: 键和值的对应关系 mapping
HashSet底层使用的就是HashMap
LinkedHashSet底层使用的就是LinkedHashMap
keySet()遍历步骤:
1.Map对象调用 keySet() 方法, 获取包含所有key的Set集合
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() 方法获取键和值
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |