LinkedList
特点:
1.非同步,线程不安全;
2.支持null元素,元素可以重复;
3.可以被当作堆栈、队列或双端队列进行操作。
4.实现java.io.Serializable接口,这意味着LinkedList支持序列化,能通过序列化去传输。
5.LinkedList包含两个重要的成员:header 和 size。
LinkedList也实现了List接口,相对于ArrayList来说,它们的最大区别在于底层数据结构不同,LinkedList的底层是一个双向链表,这也决定了它的最大优点,那就是对于数据的修改比ArrayList更加方便快捷。
相对于ArrayList,LinkedList插入是更快的。因为LinkedList不需要改变数组的大小,也不需要在数组装满的时候要将所有的数据重新装入一个新的数组,类似于插入数据,删除数据时,LinkedList也优于ArrayList,其时间复杂度仅为O(1),而ArrayList删除数据是开销很大的,因为这需要重排数组中的所有数据(除了最后一个元素)。
常用方法:
方法名 | 说明 |
---|---|
addFirst(Object o) | 在列表首部添加元素 |
addLast(Object o) | 在列表尾部添加元素 |
Object getFirst() | 返回列表的第一个元素 |
Object getLast() | 返回列表最后一个元素 |
Object removeFirst() | 删除并返回列表第一个元素 |
Object removeLat() | 删除并返回列表最后一个元素 |
add(Object o) | 增加元素 |
remove(Object o) | 按照元素删除元素 |