1.ArrayList增删改查的方法是什么,LinkedList独有的
方法有哪些?
add()
remove()
set()
get()
addFirst()
addLast()
getFirst()
getLast()
removeFirst()
removeLast()
2.ArrayList集合的特点(是否有序,是否有下标,是否
线程安全,是否可重复,是否允许为null,扩容多少,增
删改查效率)
有序 有下标 线程不安全 元素可以重复 允许元素为null 扩容为原长度的1.5倍
查询 修改 效率高
添加 需要扩容的情况 删除需要移动元素的情况 效率低
3.Collection和List的关系,List和ArrayList、
LinkedList的关系
List接口是Collection接口的子接口
ArrayList和LinkedList是List接口的实现类
4.LinkedList数据结构是什么,集合的特点,问题同2
双向链表 有序 有下标 线程不安全 元素可以重复 允许元素为null 不需要扩容
操作头部或者尾部效率高
添加 删除头部 尾部 效率高
删除 修改 查询 效率低
5.向上转型如何书写,可以调用哪些方法?
父类 对象名 = new 子类();
可以访问子类重写 以及 继承父类的方法 不能访问子类独有的方法
6.泛型的作用
可以用于统一集合中的数据类型
7.遍历ArrayList和LinkedList,可以使用哪些方式,有
什么注意事项,说明原因
可以使用三种方式:普通for循环,迭代器,增强for循环
不推荐使用普通for循环 遍历LinkedList 因为根据下标查询LinkedList元素必须先找到
相邻的元素
效率低
8.LinkedList的get(int index)方法是如何获取到当前集
合中的元素的,做了哪些优化
根据下标查询LinkedList元素必须先找到相邻的元素
如果查询的下标小于集合长度中间值 则从前往后查找
如果下标大于等于集合长度中间值 则从后往前查找
9.StringBuffer和StringBuilder区别
StringBuffer是线程安全的
StringBuilder线程不安全
10.ArrayList和Vector的区别?
ArrayList线程不安全 无参构造初始化长度为0的数组 扩容为1.5倍
Vector线程安全 无参构造初始化长度为10的数组 扩容为2倍
11.Collection和Collections的区别
Collection是集合父接口
Collections是集合工具类