49- LinkedList 集合

LinkedList集合是Java集合框架提供的一种基于链表实现的集合类。它实现了List接口和Deque接口,并且可以用作栈(先进后出)或队列(先进先出)。

一、LinkedList集合的特点包括以下几点:

  1. 基于链表:LinkedList内部使用链表来存储元素,每个元素(节点)都包含数据和指向下一个节点的引用。
  2. 动态性:与ArrayList不同,LinkedList的长度不固定,可以动态地添加或删除元素。
  3. 插入和删除高效:由于基于链表实现,插入和删除元素的操作在任意位置上都比较高效,时间复杂度为O(1)。
  4. 随机访问相对低效:由于LinkedList是基于链表的结构,访问元素时需要从头节点开始遍历,因此随机访问的效率相对较低,时间复杂度为O(n)。
  5. 支持双向遍历:LinkedList可以从头到尾或从尾到头双向遍历元素。

LinkedList集合适合于需要频繁的插入和删除操作的场景,并且不需要高效的随机访问。

二、LinkedList集合常用的方法

1.添加元素:

  • add(E e): 在链表的末尾添加元素。
  • addFirst(E e): 在链表的开头添加元素。
  • addLast(E e): 在链表的末尾添加元素。
  • add(int index, E element): 在指定位置插入元素。

2.访问元素:

  • get(int index): 获取指定索引处的元素。
  • getFirst(): 获取链表的第一个元素。
  • getLast(): 获取链表的最后一个元素。

3.删除元素:

  • remove(): 删除并返回链表的第一个元素。
  • remove(int index): 删除指定索引处的元素。
  • removeFirst(): 删除链表的第一个元素。
  • removeLast(): 删除链表的最后一个元素。

4.判断元素是否存在:

  • contains(Object o): 判断链表中是否包含指定的元素。

5.获取链表长度和清空链表:

  • size(): 获取链表中元素的个数。
  • clear(): 清空链表,删除所有元素。

6.遍历链表:

  • 使用迭代器进行遍历,或者使用增强for循环遍历。

使用迭代器进行遍历:

import java.util.LinkedList;
import java.util.Iterator;

public class Main {
    public static void main(String[] args) {
        LinkedList<String> linkedList = new LinkedList<>();
        linkedList.add("Apple");
        linkedList.add("Orange");
        linkedList.add("Banana");

        // 使用迭代器遍历链表
        Iterator<String> iterator = linkedList.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);
        }
    }
}

使用增强for循环遍历:

import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        LinkedList<String> linkedList = new LinkedList<>();
        linkedList.add("Apple");
        linkedList.add("Orange");
        linkedList.add("Banana");

        // 使用增强for循环遍历链表
        for (String element : linkedList) {
            System.out.println(element);
        }
    }
}

演示LinkedList集合的常用方法使用:

import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        LinkedList<String> linkedList = new LinkedList<>();

        // 添加元素
        linkedList.add("Apple");
        linkedList.addFirst("Orange");
        linkedList.addLast("Banana");

        System.out.println(linkedList);  // 输出:[Orange, Apple, Banana]

        // 获取元素
        String first = linkedList.getFirst();
        String last = linkedList.getLast();
        System.out.println("First: " + first);  // 输出:First: Orange
        System.out.println("Last: " + last);    // 输出:Last: Banana

        // 删除元素
        linkedList.remove("Apple");
        linkedList.removeFirst();

        System.out.println(linkedList);  // 输出:[Banana]

        // 判断元素是否存在
        boolean contains = linkedList.contains("Banana");
        System.out.println("Contains Banana: " + contains);  // 输出:Contains Banana: true

        // 获取链表长度和清空链表
        int size = linkedList.size();
        System.out.println("Size: " + size);  // 输出:Size: 1

        linkedList.clear();

        System.out.println(linkedList);  // 输出:[]
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值