ArrayList与Vector均为List接口实现,基于动态数组自动扩容,支持添加、删除、查询等操作。ArrayList非线程安全,适用于频繁增删改查,效率高;Vector方法多被synchronized修饰,线程安全但开销大。区别在于线程安全策略与性能侧重点。
List集合接口详解
作者:技术拾光
时间:2026-07-28
浏览:457
本文重点介绍 List 接口的两个经典实现——ArrayList 与 Vector,看看它们各自的特点和实际应用。
先来说说 ArrayList。每个 ArrayList 实例背后都维护着一个内部数组,这个数组的大小就是它的“容量”。随着元素的不断添加,容量会自动扩容,省去了手动管理数组长度的麻烦。ArrayList 提供了添加、删除、查询、遍历等一系列操作,能够灵活地对列表进行动态管理,所以对于频繁增删改查的场景非常适用。
常用的几个方法包括:add 方法将指定元素添加到列表末尾,添加成功则返回 true,否则返回 false;clear 方法清空列表中的所有元素;indexOf 方法查找指定元素在列表中第一次出现的位置,并返回其索引值;isEmpty 方法判断列表是否为空,如果没有包含任何元素则返回 true,否则返回 false。下面的截图展示了这些方法在代码中的实际使用。
运行后的效果可以参见下图——你看到的正是各方法调用后的输出结果。
接下来看 Vector。作为 List 的另一个实现,Vector 的 API 与 ArrayList 非常相似,但它的方法大多被 synchronized 修饰,因此线程安全。下图是 Vector 核心 API 的概览。
下面是一个向量应用的完整示例,展示了如何创建 Vector、添加元素以及遍历输出。
实际运行的效果如下:
可以看到,无论是 ArrayList 还是 Vector,它们都遵循 List 的通用约定,区别主要在于线程安全策略和性能侧重点。理解这些细节,才能在不同的并发场景下做出合适的选择。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。
相关文章