一、 ArrayList VS LinkedList
1. 什么是 LinkedList?
- LinkedList 是一个双向链表
- 实现了 List 接口
- API 跟 ArrayList 类似
2. ArrayList VS LinkedList 从查找元素方面分析?
- ArrayList:效率高
- LinkedList:效率底
3. ArrayList VS LinkedList 从添加元素方面分析?
image.png4. ArrayList VS LinkedList 从删除元素分析?
image.png5. ArrayList VS LinkedList 执行效率大总结?
image.png6. ArrayList VS LinkedList 在内存方面的差别?
- ArrayList:开辟、销毁内存空间的次数相对比较少,单可能造成内存空间浪费(可以通过缩容解决)
- LinkedList:开辟、销毁内存空间的次数相对比较多,单不会造成内存空间浪费
7. 如何在ArrayList 、 LinkedList 两者之间做出合理的选择呢?(至少列举两种情况)
image.png二、 其他集合
1. 什么是栈?
-
后进先出
image.png
image.png
2. 什么是队列?为什么 Queue 队列,要用 LinkedList 实现?而不是 ArrayList 呢?
- 先进先出
- 因为 Queue 的特点是在频繁在
头尾
进行添加删除
操作
image.png
3. Set 的特点?
- 无序性(不可以通过索引访问)
- 去重性 (不可以存储重复的值)
4. HashMap 的特点?
- 无序性(不可以通过索引访问 key-value)
- 去重性(不可以存储重复的 key,可以存储重复的 value)
image.png
5. HashSet 的底层是用什么实现的?它们有什么相似之处(说两个)?
- HashSet 底层是基于 HashMap 实现的
6. HashMap 底层用了什么技术实现的?
- 红黑树、链表、哈希表
7. java.util.Collections
里面提供了什么?这种以 s
结尾的,在 java 中一般代表什么?
- 以
s
结尾的,在 java 中一般代表工具类
网友评论