LinkedList 的全貌说明
LInkedList底层实现了双向链表和双端队列特点
LinkedList底层维护了一个双向链表
LinkedList中维护了两个属性first和last分别指向 首节点 和 尾节点
每个节点(Node对象),里面又维护了prev、next、item三个属性,其中通过prev指向前一个,通过next指向后一个节点。最终实现双向链表
所以LinkedLIst的元素的添加和删除,不是通过数组完成的,相对来说效率高
可以添加任意元素(元素可以重复),包括null
线程不安全,没有实现同步
ArrayList和LinkedList的比较
如果我们改查操作多,选择ArrayList
如果我们增删的操作多,选择LinkedList
一般来说,在程序中,80%~90%都是查询,一次大部分情况会选择ArrayLIst
在一个项目中,根据业务灵活选择,也可能是这样,一个莫阔使用的是ArrayLIst,另外的模块是LinkedLIst。