简介:

LinkedList是List接口的实现类【存储结构是链表,特点:每个元素分配的空间不必连续、插入和删除元素时速度非常快、但访问元素的速度较慢】

ArrayList 也是List接口的实现类【存储结构是线性表】


LinkedList 是一个双向链表,当数据量很大或者操作很频繁的情况下,添加和删除元素时具有比ArrayList更好的性能。但在元素查询和修改方便要弱于ArrayList。LinkedList类每个结点用内部类Node表示,LInkedList通过first和last引用分别只想链表的第一个和最后一个元素,当链表为空时,first和last都为NULL值。LinkedList数据结构如下图所示:

LinkedList的用法

 

//存储对象的结构Node,LinkedList的内部类
private static class Node<E>{
    E    item;
    Node<E>    next;//指向下一个节点
    Node<E>    prev;//指向上一个节点

    Node(Node<E> prev,E element,Node<E> next){
            this.item = element;
            this.next = next;
            this.prev = prev;
    }
}

  

 Node节点一共有三个属性:item代表节点值,prev代表节点的前一个节点,next代表节点的后一个节点。每个节点都有一个前驱和后继结点,并且在LinkedList中也定义了两个变量分别指向链表的第一个和最后一个节点。

transient Node<E> first;

transient Node<E> last;

1、添加元素到LinkedList

LinkedList提供了多个添加元素的方法;

  • Boolean add(E  e) :在链表尾部添加一个元素,如果成功,返回true,否则返回false。
  • void      addFirst(E   e):在链表头部插入一个元素。
  • addLast(E e): 在链表尾部 插入一个元素。
  • void   add(int index,E element): 在指定位置插入一个元素。

 

添加元素到LinkedList示例代码如下:

package addDemo;
import java.util.LinkedList;
public class LinkedListAddDemo{
    public static void main(String[] args){
        LinkedList<String> linkedList = new LinkedList<>();
        linkedList.add("first");
        linkedList.add("second");
        linkedList.add("third");
        System.out.println(linkedList);
        
        linkedList.addFirst("addFirst");
        System.out.println(linkedList);

        linkedList.addLast("addLast");
        System.out.println(linkedList);

        linkedList.add(2,"addByIndex");
        System.out.println(linkedList);
    }
}
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
  • 2021-05-04
猜你喜欢
  • 2022-12-23
  • 2021-06-27
  • 2021-08-13
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-09
相关资源
相似解决方案