ArrayList

  • 尾插效率高,支持随机访问
  • 中间插入或者删除效率低
  • 空间不够用时,自动增长为现有空间的1.5倍
  • 底层使用Object数组来存储数据,使用System.arrayCopy来移动元素

LinkedList

  • 头插,中间插,删除效率高
  • 不支持随机访问
  • MessageQueue中Message根据msg.when来进行插入,mMessages指向头结点

Vector

  • 底层使用数组实现,增长看capacityIncrement,若capacityIncrement小于0,翻倍增长
  • 方法有synchronized修饰,线程安全
  • Stack栈底层实现使用的Vector
  • Stack在同一端进行插入和删除,FILO
  • 队列Queue是只允许在一端进行插入操作,而在另一端进行删除操作的线性表,插入的一端称为队尾,删除的一端称为队头
  • 把队列的头尾相接的顺序存储结构称为循环队列
  • 双端队列Deque是一种具有队列和栈的性质的数据结构,双端队列中的元素可以从两端弹出,其限定插入和删除操作在队列的两端进行。LinkedListArrayDeque实现了Deque接口,LinkedBlockingQueue实现了BlockingDeque接口
  • 优先级队列,PriorityQueueMessageQueue根据Message.when来进行插入