LinkedList是List家族中除了ArrayList之外最常用的另一个成员。今天,我将通过这篇文章彻底了解LinkedList。底层数据结构LinkedList是一个双向链表:首先是transientNode;瞬态节点最后;私有静态类Node{E项;下一个节点;节点上一个;Node(Nodeprev,Eelement,Nodenext){this.item=element;这个.下一个=下一个;this.prev=prev;数据保存在Node对象的item中,一直指向上一个节点,下一个节点的对象。然后为整个LinkedList定义第一个节点first和最后一个节点last,方便正向或反向访问LinkedList。LinkedList的容量没有使用数组来存储数据,所以没有容量的概念,可以无限存储。数据存储在add(Ee)/addlast(Ee):将数据追加到链表的末尾。addfirst(Ee):向链表头部添加数据。push(Ee):压栈,相当于addfirst。add(intindex,Eelement):追加数据到链表的指定位置。addAll(Collectionc):将集合c中的所有数据追加到链表的末尾。addAll(intindex,Collectionc):将集合c中的所有数据追加到链表的指定位置。Getdatacontains(Objecto):判断链表是否包含目标对象。peek():获取链表的第一个对象,不从链表中移除一个对象(出栈)。get(intindex):获取指定位置对象。pop():获取链表的第一个数据,并从栈中弹出。removeFirst():相当于pop。由于LinkedList是一个双向链表结构,它实现了Deque接口,并提供了一系列非常方便的队列操作方法。因此,如果有先进先出、先进后出等队列操作需求的场景,LinkedList是首选。