LinkedList

发布时间 2023-12-02 18:21:23作者: kandhera

LinkedList是Java中一种常用的数据结构,它使用双向链表实现。

特点:

  高效的插入和删除操作:LinkedList在列表的头部和尾部进行添加和删除操作的复杂度为O(1),高效且方便。

  动态大小:LinkedList的大小可以根据需要自动调整,无需手动分配内存。

  支持null元素:LinkedList允许插入和删除null元素。

  迭代顺序:LinkedList的迭代器按照链表的插入顺序进行迭代。

LinkedList适用于需要频繁插入和删除元素的情况,但LinkedList不支持随机访问,获取元素的复杂度为O(n),因此如果需要频繁访问元素,建议使用ArrayList。

LinkedList可以通过Node类实现,每个节点包含一个数据域和两个指针,分别指向前一个节点和后一个节点。LinkedList类中维护了一个头节点和尾节点的指针,方便进行添加和删除操作。

JDK中LinkedList的方法:

boolean add(E e)    //尾插e

void add(int index,E element)    //将e插入到index位置

boolean addAll(Collection<? extends E> c)    //尾插c中的元素

E remove(int index)    //删除Index位置的元素

boolean remove(Object o)    //删除遇到的第一个o

E get(int index)    //获取下标index位置的元素

E set(int index,E element)    //将下标为index位置的元素设置为element

void clear()    //清空

boolean contains(Object o)    //判断o是否在线性表中

int indexOf(Object o)    //返回第一个o所在下标

int lastIndexOf(Object o)    //返回最后一个o所在下标

List<E>subList(int fromIndex,int toIndex)    //截取部分list

方法实现代码示例:

import java.util.LinkedList;  
  
public class LinkedListExample {  
    public static void main(String[] args) {  
        // 创建一个空的LinkedList  
        LinkedList<String> list = new LinkedList<String>();  
  
        // 在列表的头部添加元素  
        list.addFirst("Hello");  
  
        // 在列表的尾部添加元素  
        list.addLast("World");  
  
        // 在列表的指定位置插入元素  
        list.add(1, "Java");  
  
        // 获取列表的大小  
        int size = list.size();  
        System.out.println("Size: " + size);  
  
        // 获取列表中的元素  
        String element = list.get(0);  
        System.out.println("Element at index 0: " + element);  
  
        // 删除列表中的元素  
        list.remove(1);  
        System.out.println("After removing element at index 1:");  
        for (String s : list) {  
            System.out.println(s);  
        }  
    }  
}