1、List 特点
有序、可重复、有索引。
2、常用List
ArrayList 、 LinkedList 、 Vector 、Stack。
ArrayList 和 LinkedList 最常用。
Vector可以理解成 线程安全 的ArrayList,不过 不建议使用 , 需要线程安全的ArrayList可以使用 java .util.concurrent 包下 CopyOnWriteArrayList 。
Stack继承自Vector,实现了一个后进先出的堆栈,不过它里面的方法与Vector内部的类似,都使用了 synchronized 进行同步修饰,效率上存在问题,在不需要同步时可以使用 LinkedList 代替, LinkedList 已经实现了栈、队列、双端队列等接口。
3、ArrayList 理解
3.1 内部实现数据结构
数组
3.2 特点
擅长于随机访问,插入和删除可能引起扩容,效率较低。
4、LinkedList 理解
4.1 内部实现数据结构
双向 链表
4.2 特点
擅长于插入和删除,随机访问性能较差。
4.3 方法总结
(1)作为双端队列Deque使用
(2)作为队列Queue(FIFO先进先出)使用
(3)作为栈Stack(LIFO后进先出)使用