List的框架图 List |---- LinkList |---- ArrayList |---- Vector |---- Stack List是一个接口,它继承于Collection的接口。它代表着有序的队列。 ArrayList,LinkedList, Vector, Stack是List的4个实现类。 ArrayList:一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、删除效率低。 LinkedList:一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。随机访问效率低,但随机插入、随机删除效率低。 Vector:矢量队列,和ArrayList一样,它也是一个动态数组。但是ArrayList是非线程安全的,而Vector是线程安全的。 Stack:它继承于Vector。它的特性是:先进后出(FILO, FirstIn Last Out)。 List使用场景 如果涉及到“栈”、“队列”、“链表”等操作,应该考虑用List,具体的选择哪个List,根据下面的标准来取舍。 1、对于需要快速插入,删除元素,应该使用LinkedList。 2、对于需要快速随机访问元素,应该使用ArrayList。 3、对List仅仅只会被一个线程操作时应该使用非同步类(如ArrayList)。 4、对List可能同时被多个线程操作时应该使用同步类(如Vector)。 附件是我11年学严蔚敏数据结构时实现的LinkList(单向链表),和双向链表的实现原理相同。
|