1. LinkedList的底层
底层数据结构:双向链表
节点类
class Node<E>{
Node<E> prev;
E item;
Node<E> next;
}
transient Node<E> first;
transient Node<E> last;
void linkLast(E e){
final Node<E> l = last;
final Node<E> newNode = newNode<>(l,e,null);
last=newNode;
if(l=null){
first=newNode;
}else{
l.next=newNode;
}
size++;
modCount++;
}
- LinkedList底层数据结构是什么?
双向链表
- LinkedList存储对象最大容量是多少?
内存容量
- ArrayList和LinkedList的区别
数据结构:
ArrayList:一维数组
LinkedList:双向链表
效率的区别:
添加的效率(ArrayList不扩容的情况):ArrayList快
添加的效率(ArrayList扩容的情况):LinkedList快
删除的效率:LinkedList快
修改的效率:ArrayList快
查询的效率:ArrayList快
项目中使用ArrayList较多,因为查询需求多,ArrayList查询效率更快,所以一般情况下使用ArrayList。在栈模式或者队列模式的需求下会考虑使用LinkedList
2. Vector底层
- Vector的底层数据结构是什么?
Object类型的一维数组- Vector的默认初始化容量是多少?
10- 扩容机制是什么?
如果容量增量小于等于0,扩容机制是数组原来长度的两倍
如果容量增量大于0,扩容机制是数组原来长度+容量增量- Vector的特点是什么?
Vector是线程安全的集合