关于LinkedList集合对元素进行增查删操作

 更新时间:2023年04月26日 09:19:14   作者:Blue92120  
LinkedList集合内部包含有两个Node类型的first和last属性维护一个双向循环链表,在链表中的每一个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来,需要的朋友可以参考下

ArrayList集合在查询元素时速度很快,但在增删元素时效率较低,为了克服这种局限性,可以使用List接口的另一个实现类LinkedList。LinkedList集合内部包含有两个Node类型的first和last属性维护一个双向循环链表,在链表中的每一个元素都使用引用的方式来记住它的前一个元素和后一个元素,从而可以将所有的元素彼此连接起来。当插入一个新元素时,只需要修改元素之间的这种引用关系即可,删除一个节点也是如此。正因为这样的存储结构,所以LinkedList集合对于元素的增删操作表现出很高的效率,LinkedList集合添加元素和删除元素的过程如图所示。

在图6-5中,通过两张图描述了LinkedList集合新增元素和删除元素的过程。其中,左图为新增一个元素,图中的元素1和元素2在集合中彼此为前后关系,在它们之间新增一个元素时,只需要让元素1记住它后面的元素是新元素,让元素2记住它前面的元素为新元素就可以了。右图为删除元素,要想删除元素1和元素2之间的元素3,只需要让元素1与元素2变成前后关系就可以了。LinkedList集合除了从接口Collection和List中继承并实现了集合操作方法外,还专门针对元素的增删操作定义了一些特有的方法,如下所示。

方法声明功能描述
void add(int index, E element在此列表中指定的位置插入指定的元素。
void addFirst(Object o)将指定元素插入集合的开头
void addLast(Object o)将指定元素添加到集合的结尾
Object getFirst(O返回集合的第一个元素
Object getLast()返回集合的最后一个元素
Object removeFirst()移除并返回集合的第一个元素
Object removeLast()移除并返回集合的最后一个元素
boolean offer(Object o)将指定元素添加到集合的结尾
boolean offerFirst(Object o)将指定元素添加到集合的开头
boolean offerLast(Object o)将指定元素添加到集合的结尾
Object peek()获取集合的第一个元素
Object peekFirst()获取集合的第一个元素
Object peekLast(获取集合的最后一个元素
Object poll(0移除并返回集合的第一个元素
Object pollFirst()移除并返回集合的第一个元素
Object pollLast()移除并返回集合的最后一个元素
void push(Object o)将指定元素添加到集合的开头
Object pop0移除并返回集合的第一个元素

上表中,列出的方法主要针对集合中的元素进行增加、删除和获取操作,接下来通过一个案例来学习LinkedList中常用方法的使用,如文件所示。

文件Example02.java

importjava.util.LinkedList;publicclassExample02{3publicstaticvoidmain(String[] args){// 创建LinkedList集合LinkedList link =newLinkedList();// 1、添加元素
        link.add("stu1");
        link.add("stu2");System.out.println(link);// 输出集合中的元素
        link.offer("offer");// 向集合尾部追加元素
        link.push("push");// 向集合头部添加元素System.out.println(link);// 输出集合中的元素// 2、获取元素Object object = link.peek();//获取集合第一个元素System.out.println(object);// 输出集合中的元素// 3、删除元素
        link.removeFirst();// 删除集合第一个元素
        link.pollLast();// 删除集合最后一个元素System.out.println(link);20}21}

运行结果如下图所示。

在文件Example02.java首先创建了一个LinkedList集合,接着分别使用add()、offer()、push()方法向集合中插入元素,然后使用peek()方法获取了集合的第一个元素,最后分别使用removeFirst()、pollLast()方法将集合中指定位置的元素移除,这样就完成了元素的增、查、删操作。由此可见,使用LinkedList对元素进行增删操作是非常便捷的。

到此这篇关于关于LinkedList集合对元素进行增查删操作的文章就介绍到这了,更多相关LinkedList集合增查删内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现图形界面计算器

    Java实现图形界面计算器

    这篇文章主要为大家详细介绍了Java实现图形界面计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java Selenium实现多窗口切换的示例代码

    Java Selenium实现多窗口切换的示例代码

    这篇文章主要介绍了Java Selenium实现多窗口切换的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • JavaWeb文件上传流程

    JavaWeb文件上传流程

    这篇文章主要介绍了JavaWeb文件上传流程,JavaWeb中最重要的技术之一,下文关于其文件上传的流程分享,需要的小伙伴可以参考一下
    2022-05-05
  • JAVA发送HTTP请求的四种方式总结

    JAVA发送HTTP请求的四种方式总结

    这篇文章主要给大家介绍了关于JAVA发送HTTP请求的多种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Springboot项目启动不加载resources目录下的文件问题

    Springboot项目启动不加载resources目录下的文件问题

    这篇文章主要介绍了Springboot项目启动不加载resources目录下的文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 快速解决springboot在yml配置了启动端口但启动还是8080问题

    快速解决springboot在yml配置了启动端口但启动还是8080问题

    这篇文章主要介绍了快速解决springboot在yml配置了启动端口但启动还是8080问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Java设计模式中的建造者模式详解

    Java设计模式中的建造者模式详解

    这篇文章主要介绍了Java设计模式中的建造者模式详解,建造者模式使我们日常工作中比较常见的一种设计模式,和工厂模式一样属于创建型设计模式,用于解耦对象创建和对象使用的逻辑,需要的朋友可以参考下
    2023-12-12
  • 详解springmvc之json数据交互controller方法返回值为简单类型

    详解springmvc之json数据交互controller方法返回值为简单类型

    这篇文章主要介绍了springmvc之json数据交互controller方法返回值为简单类型,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • Java数据结构之栈与队列实例详解

    Java数据结构之栈与队列实例详解

    这篇文章主要给大家介绍了关于Java数据结构之栈与队列的相关资料,算是作为用java描述数据结构的一个开始,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • Mybatis统计sql运行时间的两种方式

    Mybatis统计sql运行时间的两种方式

    这篇文章主要介绍了Mybatis统计sql运行时间的方案,Spring Boot + Mybatis web项目,统计sql运行时间,用于分析慢sql,优化系统速度,方案有两种:自定义实现 Interceptor和使用现有依赖库(Druid),文中通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-11-11

最新评论