1. LinkedList的底层

底层数据结构:双向链表

节点类
class Node<E>{
    Node<E> prev;
    E item;
    Node<E> next;
}

2023年6月16日,LinkedList的底层,Vector底层_Vector底层

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++;
}
  1. LinkedList底层数据结构是什么?

双向链表

  1. LinkedList存储对象最大容量是多少?

内存容量

  1. ArrayList和LinkedList的区别

数据结构:

ArrayList:一维数组

LinkedList:双向链表

效率的区别:

添加的效率(ArrayList不扩容的情况):ArrayList快

添加的效率(ArrayList扩容的情况):LinkedList快

删除的效率:LinkedList快

修改的效率:ArrayList快

查询的效率:ArrayList快

项目中使用ArrayList较多,因为查询需求多,ArrayList查询效率更快,所以一般情况下使用ArrayList。在栈模式或者队列模式的需求下会考虑使用LinkedList

2. Vector底层

  1. Vector的底层数据结构是什么?
    Object类型的一维数组
  2. Vector的默认初始化容量是多少?
    10
  3. 扩容机制是什么?
    如果容量增量小于等于0,扩容机制是数组原来长度的两倍
    如果容量增量大于0,扩容机制是数组原来长度+容量增量
  4. Vector的特点是什么?
    Vector是线程安全的集合