每日一题:对比Vector、ArrayList、LinkedList有何区别❓

embedded/2024/10/18 12:31:44/

Vector🍑

  1. 线程安全:Vector 是同步的,因此它是线程安全的。但这也意味着它在单线程环境下的性能比非同步类 ArrayList 要低。
  2. 数据增长:当需要增加容量时,Vector 默认增长为原来的两倍,这个增长率是可以自定义的。
  3. 遗留:Vector是Java早期版本中引入的,现在已经不是首选,因为 Collections.synchronizedList 和 CopyOnWriteArrayList 提供了更好的线程安全集合操作。

ArrayList🎈

  1. 非同步:ArrayList 不是同步的,因此不是线程安全的。这使得它在多线程环境下需要外部同步。
  2. 数据增长:当元素超过当前容量时,ArrayList 增加大约 50% 的容量。
  3. 性能:由于非同步,ArrayList 在单线程环境下提供了比 Vector 更好的性能。
  4. 随机访问:ArrayList 提供了快速的随机访问能力,因为它是基于数组实现的。

LinkedList🍒

  1. 实现:LinkedList 基于双向链表实现,因此它在插入和删除操作中比基于数组的 ArrayList 和Vector 更高效,特别是在列表中间的操作。
  2. 随机访问:与 ArrayList 相比,LinkedList 在随机访问方面表现不佳,因为它需要从头开始遍历链表来访问元素。
  3. 内存占用:每个元素都作为一个节点存储,节点除了存储数据外还存储了前后节点的引用,因此 LinkedList 的内存占用比 ArrayList 更高。
  4. 接口实现:LinkedList 除了实现了 List 接口外,还实现了 Deque 接口,使其可以被当作队列、双端队列或栈来使用。

总结🌈

  • 使用 Vector 当需要线程安全的操作时,但考虑到性能,通常有更好的选择。
  • ArrayList 适用于当添加或访问元素比删除更频繁时。
  • LinkedList 适用于频繁插入和删除元素的场景,特别是在列表的开头或中间,以及当需要额外的队列/栈功能时。

http://www.ppmy.cn/embedded/20837.html

相关文章

开源博客项目Blog .NET Core源码学习(17:App.Hosting项目结构分析-5)

本文学习并分析App.Hosting项目中前台页面的作品展示页面和首页页面。 作品展示页面 作品展示页面总体上为上下布局,上方显示导航菜单,下方从左向右显示图片数据,支持放大查看图片和下载图片。整个页面使用了layui中的面包屑导航、弹出层、流…

音源分离|MUSIC SOURCE SEPARATION BASED ON A LIGHTWEIGHT DEEP LEARNING FRAMEWORK

一、文章摘要 音源分离(Music source separation ,MSS)旨在从一段混合音乐中提取“人声”,“鼓”,“贝斯”和“其他”音轨。虽然深度学习方法已经显示出令人印象深刻的结果,且有一个趋势是使用更大的模型去实现音源分离。但在本文…

面试经典150题——罗马数字转整数

面试经典150题 day17 题目来源我的题解方法一 哈希表方法二 优化版本 题目来源 力扣每日一题;题序:13 我的题解 方法一 哈希表 存储单独的存在的可能字符串 时间复杂度:O(n) 空间复杂度:O©。C表示单独存在的可能字符串数量…

Leetcode 17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出:[“a…

28.Gateway-网关过滤器

GatewayFilter是网关中提供的一种过滤器,可以多进入网关的请求和微服务返回的响应做处理。 GatewayFilter(当前路由过滤器,DefaultFilter) spring中提供了31种不同的路由过滤器工厂。 filters针对部分路由的过滤器。 default-filters针对所有路由的默认…

C#多线程之(Thread)详解与示例

文章目录 一、线程的基本概念二、C#中创建和启动线程的方法三、线程的生命周期四、线程的状态转换五、线程之间的通信机制六、线程安全的编程实践使用 ConcurrentBag 进行线程安全的数据收集 总结 本文将深入探讨C#多线程编程的核心概念,包括线程的基本概念、创建和…

探索HSE化工安全系统在化工生产中的作用

在现代工业化生产中,化工企业扮演着至关重要的角色,但与此同时,化工安全问题也备受关注。为了保障生产环境的安全,HSE化工安全系统应运而生。本文将详细介绍HSE化工安全系统的功能和优势,让您深入了解其在工业生产中的…

故障诊断 | 基于GASF-CNN的状态识别研究

概述 抗蛇行减振器作为高速动车组二系悬挂系统的关键零部件,对改善车辆运动稳定性、提高车辆系统的临界速度具有重要意义。抗蛇行减振器在高级修时需全部进行拆解维修或报废处理,若在高级修中的三、四级修时其性能尚能够满足实际使用要求,将其过早地拆解检修或者报废换新无…