LinkedList
LinkedList
Node结点数据结构
|
|
construct
|
|
add
|
|
LinkedList的add方法默认是将元素添加到list的末尾,但是由于实现了Deque双端队列接口,所以还有诸如addFirst(E e)、linkFirst(e)等方法,将元素添加到首部,学过数据结构,对这个应该不陌生,大同小异。
另外,还有offer方法则是直接调用了add方法如下所示:123public boolean offer(E e) { return add(e);}
remove
|
|
LinkedList的remove方法默认是删除首部元素,当然也有removeLast()、remove(int index)等方法。
get
|
|
同理,LinkedList还有getFirst()、getLast()等方法,具有O(1)的时间复杂度。123456public E getFirst() { final Node<E> f = first; if (f == null) throw new NoSuchElementException(); return f.item; }
小结
1、底层基于双端链表实现,允许列表为null。
2、LinkedList插入元素很快,不存在ArrayList扩容的概念,只要内存够大就行。
3、基于双端链表,不能实现随机访问,查找效率低。
4、删除元素操作较快。