List接口实现有哪些及其区别?
List接口实现有哪些及其区别?
List接口实现有哪些及其区别?
2016-10-17
1,List接口继承Iterable和Collection接口,它可以将元素插入在指定的位置,用索引方式访问元素,允许Null值插入.
2, List的直接实现是两个抽象类,AbstactList和AbstractSequentialList.其中,AbstractList为随即访问(如数组)实现方案提供尽可能的封装,AbstractSequentialList为连续访问(如链表)实现方案提供了尽可能的封装。
3,ArrayList,直接父类是AbstractList,数据结构是大小可变的数组,它不是同步的,在一次性大量插入的情况下,最好先调用ensureCapacity()以减少新增空间的分配操作。它的Iterate和ListIterater是快速失败的。
4,LinkedList,直接父类是AbstractSquentialList.数据结构是双向链表,它不是同步的,它同时实现了Deque(双向队列)和Queue(队列)接口。同时它还提供了push和pop这两个堆栈操作的接口。它的Iterate和ListIterater是快速失败的。
5,Vector,直接父类是AbstractList,特性和ArrayList一样,只是它是线程同步的。
6,Stack,直接父类是Vector,实现堆栈这种数据结构。
7,AttributeList,直接父类是ArrayList,里面存放元素必须是Attribute
8,RoleList,直接父类是ArrayList,里面存放的元素必须是Role
9,CopyonWriteArrayList,直接父类是AbstactList,是ArrayList线程安全的一个变体,所有的操作都将数组重新复制一遍
10,RoleUnresovledList,直接父类是ArrayList.用于存放未检索到的Role
举报