linkedList 的底层实现

LinkedList 是 Java 集合框架中一个重要的实现,其底层采用的双向链表结构。和 ArrayList 一样,LinkedList 也支持空值和重复值。由于 LinkedList 基于链表实现,存储元素过程中,无需像 ArrayList 那样进行扩容。但有得必有失,LinkedList 存储元素的节点需要额外的空间存储前驱和后继的引用。另一方面,LinkedList 在链表头部和尾部插入效率比较高,但在指定位置进行插入时,效率一般。原因是,在指定位置插入需要定位到该位置处的节点,此操作的时间复杂度为O(N)。最后,LinkedList 是非线程安全的集合类,并发环境下,多个线程同时操作 LinkedList,会引发不可预知的错误

 

首先LinkedList 的 成员变量  

 重点是  first  last 变量 size 对象的个数

 

 内部有一个内部类  内部类 包括 next 指向下一个元素 和 pre指向上一个元素

 

 

 这就是为什么 LinkedList 是一个链表,传入元素的时候 只是插入一个 Node 对象,并指向 上一个和下一个对象 

但是要循环查询元素 就需要逐个去查询 

 

 

在插入 删除 元素的时候 只是操作 Node 对象 next 指向下一个元素 和 pre指向上一个元素即可

 

posted @ 2019-07-25 16:26  _debug—  阅读(2226)  评论(0编辑  收藏  举报