ArrayList、Vector、LinkedList的存储性能和特性简述

简介: ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector中的方法由于添加了synchronized修饰,因此Vector是线程安全的容器,但性能上较ArrayList差,因此已经是Java中的遗留容器。

ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector中的方法由于添加了synchronized修饰,因此Vector是线程安全的容器,但性能上较ArrayList差,因此已经是Java中的遗留容器。LinkedList使用双向链表实现存储(将内存中零散的内存单元通过附加的引用关联起来,形成一个可以按序号索引的线性结构,这种链式存储方式与数组的连续存储方式相比,内存的利用率更高),按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。Vector属于遗留容器(Java早期的版本中提供的容器,除此之外,Hashtable、Dictionary、BitSet、Stack、Properties都是遗留容器),已经不推荐使用,但是由于ArrayList和LinkedListed都是非线程安全的,如果遇到多个线程操作同一个容器的场景,则可以通过工具类Collections中的synchronizedList方法将其转换成线程安全的容器后再使用(这是对装潢模式的应用,将已有对象传入另一个类的构造器中创建新的对象来增强实现)。

目录
相关文章
|
2月前
|
存储 缓存 Cloud Native
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
|
12月前
|
关系型数据库 MySQL Linux
ADB MySQL湖仓版在Linux和Windows上的性能差异
ADB MySQL湖仓版在Linux和Windows上的性能差异
104 1
|
2月前
|
分布式计算 关系型数据库 数据处理
深度揭秘:ADB之外的数据库战场,Planner与ORCA优化器,谁才是性能提升的幕后推手?
【8月更文挑战第27天】在数据库和Android调试领域,优化器如Planner与ORCA扮演着提升性能的关键角色。Planner作为传统数据库的核心,以成熟稳定、高度集成及易于扩展著称,适用于大多数查询优化场景。ORCA则凭借其模块化设计、高并发性和基于成本的优化策略,在处理复杂查询和大规模数据集时展现出色性能。尽管ADB本身不包含这些优化器,但其调试理念与优化器的设计理念相辅相成,共同推动技术进步。例如,在使用ORCA的数据库中,一个涉及多表连接的复杂查询可以被自动优化,通过评估不同连接策略的成本来选择最佳执行计划。这两种优化器各有所长,共同促进数据处理技术的发展。
42 0
|
2月前
|
缓存 Java Spring
Spring缓存实践指南:从入门到精通的全方位攻略!
【8月更文挑战第31天】在现代Web应用开发中,性能优化至关重要。Spring框架提供的缓存机制可以帮助开发者轻松实现数据缓存,提升应用响应速度并减少服务器负载。通过简单的配置和注解,如`@Cacheable`、`@CachePut`和`@CacheEvict`,可以将缓存功能无缝集成到Spring应用中。例如,在配置文件中启用缓存支持并通过`@Cacheable`注解标记方法即可实现缓存。此外,合理设计缓存策略也很重要,需考虑数据变动频率及缓存大小等因素。总之,Spring缓存机制为提升应用性能提供了一种简便快捷的方式。
37 0
|
2月前
|
SQL 存储 算法
ADBPG&Greenplum成本优化问题之ADB PG中平衡数据压缩与访问性能如何解决
ADBPG&Greenplum成本优化问题之ADB PG中平衡数据压缩与访问性能如何解决
32 0
|
存储 Java
Java中 List集合接口及其主要的实现类ArrayList,Vector,LinkedList的详解
Java中 List集合接口及其主要的实现类ArrayList,Vector,LinkedList的详解
58 0
|
存储 安全 Java
Java集合(4)--List接口及其实现类ArrayList、LinkedList和Vector
Java集合(4)--List接口及其实现类ArrayList、LinkedList和Vector
106 0
Java集合(4)--List接口及其实现类ArrayList、LinkedList和Vector
|
存储 安全 算法
【JAVA】对比 Vector、ArrayList、LinkedList 有何区别?
我们在日常的工作中,能够高效地管理和操作数据是非常重要的。那么你知道,对比 Vector、ArrayList、LinkedList 有何区别?
148 0
|
安全 Java
【蓝桥杯Java_C组·从零开始卷】第八节、集合——list详解(ArrayList、 LinkedList 和 Vector之间的区别)
【蓝桥杯Java_C组·从零开始卷】第八节、集合——list详解(ArrayList、 LinkedList 和 Vector之间的区别)
104 0
【蓝桥杯Java_C组·从零开始卷】第八节、集合——list详解(ArrayList、 LinkedList 和 Vector之间的区别)
|
存储 分布式计算 Cloud Native
云原生数仓如何破解大规模集群的关联查询性能问题?
本文从ADB PG架构设计的角度出发,探讨Runtime Filter在ADB PG中的实现方案,并介绍了基于Bloom Filter的ADB PG Dynamic Join Filter功能技术细节。
603 1
云原生数仓如何破解大规模集群的关联查询性能问题?

热门文章

最新文章

下一篇
无影云桌面