Java集合框架中LinkedList的常见使用

一、LinkedList类简介

Java集合框架中的LinkedList是一个双向链表实现的动态数组。它实现了List和Deque接口,因此可以用作列表和队列。

LinkedList使用节点存储数据,每个节点包含一个元素和对前一个和后一个节点的引用。这使得在LinkedList中插入和删除元素非常高效,因为只需要调整相邻节点的引用。

二、LinkedList的特点

  1. 链表结构:LinkedList使用链表结构来存储元素,因此在列表中插入和删除元素的开销较小,但访问特定索引的元素的开销较大。

  2. 双向操作:每个节点都包含对前一个和后一个节点的引用,这使得可以双向遍历列表。

  3. 操作灵活:LinkedList支持在列表的任意位置插入和删除元素,而不需要移动其他元素。

总结就是 LinkedList的任意位置插入和删除元素时效率比较高

三、常见方法使用

语法解释
add(E o)将指定元素追加到此列表的结尾
add(int index, E element)在此列表中指定的位置插入指定的元素
addFirst(E o)将给定元素插入此列表的开头
addLast(E o)将给定元素追加到此列表的结尾
remove(),poll()找到并移除此列表的第一个元素
remove(int index)移除此列表中指定位置处的元素
remove(int index)移除此列表中指定位置处的元素
remove(Object o)移除此列表中首次出现的指定元素
get(int index)返回此列表中指定位置处的元素
get First()返回此列表的第一个元素
get Last()返回此列表的最后一个元素
set(int index, E element)将此列表中指定位置的元素替换为指定的元素
peek()找到但不移除此列表的头(第一个元素)
poll()找到并移除此列表的头(第一个元素
contains(Object o)如果此列表包含指定元素,则返回 true

3.0、创建创建LinkedList对象:

LinkedList<Object> list = new LinkedList<>();

3.1、添加元素(add):

package OOP6上课内容;
import java.util.LinkedList;

public class test {
    public static void main(String[] args) {
        LinkedList <Object>list = new LinkedList<>();
        list.add("张三");
        list.add("李四");
        System.out.println(list);
    }
}

输出效果:
在这里插入图片描述

3.2、获取指定位置的元素(get):

package OOP6上课内容;
import java.util.LinkedList;

public class test {
    public static void main(String[] args) {
        LinkedList <Object>list = new LinkedList<>();
        list.add("张三");
        list.add("李四");
        String element = list.get(1);
        System.out.println(element);
    }
}

输出效果:
在这里插入图片描述

3.3、 设置指定位置的元素(set):

package OOP6上课内容;
import java.util.LinkedList;

public class test {
    public static void main(String[] args) {
        LinkedList <Object>list = new LinkedList<>();
        list.add("Hello");
        list.add("World");
        list.set(1, "Java");
        System.out.println(list);
    }
}

输出效果:
在这里插入图片描述

3.4、删除指定位置的元素(remove):

package OOP6上课内容;
import java.util.LinkedList;

public class test {
    public static void main(String[] args) {
      	LinkedList <Object>list = new LinkedList<>();
        list.add("Hello");
        list.add("World");
        list.remove(1);
        System.out.println(list);
    }
}

输出效果:
在这里插入图片描述

3.5、获取列表的大小(size):

package OOP6上课内容;
import java.util.LinkedList;

public class test {
    public static void main(String[] args) {
        LinkedList <Object>list = new LinkedList<>();
        list.add("Hello");
        list.add("World");
        int size = list.size();
        System.out.println(size);
    }
}

代码效果:
在这里插入图片描述

3.6、判断列表是否包含某个元素(contains):

package OOP6上课内容;
import java.util.LinkedList;

public class test {
    public static void main(String[] args) {
       	LinkedList <Object>list = new LinkedList<>();
        list.add("Hello");
        list.add("World");
        boolean contains = list.contains("Java");
        System.out.println(contains);
    }
}

代码效果:
在这里插入图片描述

3.7、清空列表(clear):

package OOP6上课内容;
import java.util.LinkedList;

public class test {
    public static void main(String[] args) {
        LinkedList <Object>list = new LinkedList<>();
        list.add("Hello");
        list.add("World");
        list.clear();  //清空列表内容
        System.out.println(list);
    }
}

代码效果:
在这里插入图片描述

四、LinkedList类的遍历方法

LinkedList类是Java集合框架中的一种双向链表实现。它提供了以下几种遍历方法:

4.1、for-each循环遍历:

for-each循环可以直接遍历链表中的所有元素,无需使用迭代器。以下是一个简单的示例:

 @Test
    public void test1() {
        LinkedList a = new LinkedList();
        a.add("张三");
        a.add("李四");

        //增强循环
        int index = 0;
        for (Object val : a) {
            System.out.println(  index + "   " + val);
            index++;
        }
    }

代码效果:
在这里插入图片描述

4.2、迭代器 Iterator循环遍历:

通过使用迭代器,可以逐个访问链表中的元素。以下是一个简单的示例:

 @Test
        public void test2(){
            LinkedList a = new LinkedList();
            a.add("张三");
            a.add("李四");
            //迭代器 Iterator的使用
            int index1 = 0;
            Iterator iteA = a.iterator();
            while (iteA.hasNext()){
                String name=iteA.next().toString();
                System.out.println(index1+" ------  "+name);
                index1++;
            }
        }

效果演示:
在这里插入图片描述

4.3、for循环遍历:

        @Test
        public void test3(){
            LinkedList a = new LinkedList();
            a.add("张三");
            a.add("李四");
            //循环方法
            for (int i = 0; i < a.size(); i++) {
                System.out.println(i+" ~~~~~ "+a.get(i));
            }
        }

代码效果:
在这里插入图片描述

在本文中,我们详细介绍了Java集合框架中LinkedList的常见方法以及它的几种循环方式。通过学习这些方法,我们可以更好地理解和使用LinkedList类来存储和操作数据。
LinkedList是一个双向链表,它实现了List接口。

通过掌握这些方法,我们可以更有效地使用LinkedList类来处理各种数据操作需求。希望本文对您有所帮助!❀❀

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值