首页 > 其他分享 >集合LinkedList的常见使用

集合LinkedList的常见使用

时间:2023-12-01 20:33:55浏览次数:28  
标签:常见 LinkedList 元素 链表 场景 集合 遍历 linkedList

什么是LinkedList集合 LinkedList 集合是Java编程语言中的一种双向链表数据结构,它实现了 List 接口和 Deque 接口。 与 ArrayList 类似,LinkedList 也是一种动态数组,可以根据需要动态地增加或减少元素的大小。 然而,LinkedList 与 ArrayList 在内部实现和性能方面有所不同 LinkedList 使用双向链表来存储元素,每个元素都包含一个指向前一个元素和后一个元素的引用,这种结构使得 LinkedList 在插入和删除元素时效率较高,因为它只需要调整节点的引用,而不需要移动其他元素 LinkedList的一些常见应用场景包括以下 5 类 1, 需要频繁插入和删除元素的场景,因为 LinkedList 在插入和删除操作上效率较高。 2. 实现队列和双向队列的场景,因为 LinkedList 实现了 Deque 接口。 3. 实现堆栈的场景,可以 LinkedList 的 addFirst() 和 removeFirst() 方法来模拟堆栈的入栈和 出栈操作。 4. 实现循环链表的场景,因为 LinkedList 的首尾节点相连,可以形成一个循环链表。 5. 需要进行大量顺序遍历操作的场景,因为 LinkedList 的顺序遍历效率较高。 需要注意的是,与 ArrayList 一样,LinkedList 也不是线程安全的。 如果在多个线程中同时访问和修改 LinkedList,可能会引发并发访问的问题, 在多线程环境中使用 LinkedList 时,应该采取相应的线程安全措施, 如使用同步机制或使用线程安全的替代方案。 LinkedList的方法 方法名 描述 add() 将指定元素追加到此列表的结尾 add(int ,E) 在此列表中指定的位置插入指定的元素 clear() 从此列表中移除所有元素 get() 返回此列表中指定位置处的元素 remove() 移除此列表中指定位置处的元素 size() 返回此列表的元素数 set() 将此列表中指定位置的元素替换为指定的元素 LinkedList集合的使用 以下是 LinkedList 集合的一些常见使用方式的示例代码: 1 创建 LinkedList 集合、添加元素、遍历元素 LinkedList linkedList = new LinkedList<>(); linkedList.add("aaaaa"); linkedList.add("bbbbb"); linkedList.add("ccccc"); for (String key : linkedList) { System.out.println(key); } 输出结果 aaaaa bbbbb ccccc 2 在指定位置插入元素 linkedList.add(1, "nnnnn"); System.out.println(linkedList); 输出结果 [aaaaa, nnnnn, bbbbb, ccccc] 3 获取指定位置的元素 String a = linkedList.get(1); System.out.println(a); 输出结果 bbbbb //下标从0开始 4 删除指定位置的元素 linkedList.remove(1); 根据下标删除 5 在开头或末尾插入元素 linkedList.addFirst("grape"); linkedList.addLast("watermelon"); System.out.println(linkedList); 输出结果 [grape, aaaaa, bbbbb, ccccc, watermelon] LinkedList集合的应用场景 1,需要频繁地进行元素插入和删除操作的场景:由于 LinkedList 采用双向链表的数据结构,插入和删除元素的效率较高,因为只需要调整节点的引用即可,而不需要像数组一样移动其他元素。 2,实现队列和双向队列的场景:LinkedList 实现了 Deque 接口,因此可以用来实现队列和双向队列。例如,可以使用 LinkedList 的 addFirst() 和 removeFirst() 方法来模拟队列的入队和出队操作。 3,实现堆栈的场景:LinkedList 也可以用来实现堆栈数据结构。通过使用 LinkedList 的 addFirst() 和 removeFirst() 方法来模拟堆栈的入栈和出栈操作。 4,需要进行大量顺序遍历操作的场景:LinkedList 的顺序遍历效率较高,因为它是一个链表数据结构,可以按顺序依次遍历元素。 5,实现循环链表的场景:由于 LinkedList 的首尾节点相连,可以形成一个循环链表。这在某些场景下可能会有用,例如处理循环队列。 如果你还不理解的话,那通俗易懂的讲就是: 需要频繁地进行插入和删除操作。 需要高效地使用迭代器进行遍历操作。 不需要随机访问元素,或者只需要在链表的头部和尾部进行访问。 ———————————————— 版权声明:本文为CSDN博主「天降伊利大王」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/liyil66464/article/details/134742658

标签:常见,LinkedList,元素,链表,场景,集合,遍历,linkedList
From: https://www.cnblogs.com/lyl20051120/p/17870820.html

相关文章

  • 集合框架(二)LinkedList的常见使用
    LinkedList:非同步集合LinkedList不是同步集合,如果需要在多线程环境下访问该集合,需要手动实现线程同步。双向链表实现LinkedList内部使用双向链表来表示集合元素,每个节点都存储了元素、前驱节点和后继节点信息。添加/删除元素的效率较高由于是链表实现,LinkedList的添加/删除......
  • 集合框架Map的常见使用及循环的五中方式
    Map集合是什么?Map集合是一种以键值对形式存储和操作数据的数据结构,建立了key-value之间的映射关系,常用于存储和处理复杂的数据Map集合的主要特点:Map和List不同,Map是一种双列集合;Map存储的是key-value的映射关系;Map不保证顺序。在遍历时,遍历的顺序不一定是put......
  • ArrayList的常见方法和使用
    ArrayList的常见方法和使用1.add(Objectelement):向列表的尾部添加指定的元素,一次只能添加一个。ArrayListlist=newArrayList();list.add("jim");list.add("tom");list.add("kk");System.out.println(list......
  • gcc 在嵌入式软件中一些常见的用法(待补充)
    大多数情况,嵌入式软件工程师并不需要知道gcc编译器是工作的,但是随着调试深入,了解gcc在软件中的一些常见的用法大有裨益。这里列一下遇到的一些嵌入式软件中用到的一些gcc知识。1GCC关闭某函数的优化软件库使用O2/O3优化,有时debug时,需要关闭其中某些函数的优化(即使用此函数使用......
  • 安防行业2023年度盘点:当前安防市场常见的视频监控系统及视频分析技术
    随着科技的飞速发展,智能安防监控系统已经成为了现代社会中不可或缺的一部分。这种系统的技术特点及应用领域值得我们深入探讨。今天我们就以市面上常见的智慧安防视频监控系统及视频分析技术来盘点和探讨一下。1、全面的视频安防监控能力首先,智能安防监控系统在实时监控、录像回......
  • Docker 的一些常见命令
    dockerimagesdockerrim(后面跟dockerimagename,或者imageid)dockerbuilddockerbuild--tagimageName.//将当前目录下的dockerfilebuild成imageName的最新版本dockerpushdockerpushrepoName/imageName//将本地制作的镜像push到仓库中官方文......
  • 商家转账到零钱全攻略:开通、使用、区别与常见问题解答
    一、商家转账到零钱功能介绍微信作为中国最受欢迎的社交平台之一,其支付功能也相当强大。其中,商家转账到零钱功能可以让商家直接将款项转入用户的微信零钱,方便快捷。本文将详细介绍商家转账到零钱的功能、开通条件、使用方法以及常见问题解答。二、商家转账到零钱场景说明商家转......
  • Linux MIPI 调试中常见的问题
    一、概述做嵌入式工作的小伙伴知道,有时候程序编写没有调试过程中费时,之间笔记里有MIPI摄像头驱动开发的过程,有需要的小伙伴可以参考:LinuxRN6752驱动编写。而我也是第一次琢磨MIPI协议,其中有很多不明白的地方,在调试的时候折腾了很久,特此将我遇到的问题记录下来,希望多其他小......
  • Pycharm常见问题与解决方案
    PyCharm无法启动有时候我们在启动PyCharm时,会遇到无法启动的情况,这可能是由于PyCharm的配置文件损坏所致。解决方法如下:1.打开终端,输入以下命令:```rm-rf~/.PyCharm*2.重新启动PyCharm。问题二:PyCharm无法连接远程服务器有时候我们需要在远程服务器上进行Python开发,但是......
  • 事事有回应:51CTO博客官方小助手,在此集合!
    “奖品什么时候发?”“为什么删除我的文章?”“我要申请TOP红人!”......关于活动福利、编辑器使用、博文的审核等等博客问题,欢迎博客的新老朋友们,有事没事,都可以找官方小助手聊一聊哦~(微信:cto51cto)【活动相关】目的:从活动开始到结束,全流程解答你的问题联系:加小助手【编辑器......