【Java 集合】集合框架之 List

本文探讨了Java中List接口的三种主要实现类:ArrayList、Vector和LinkedList。ArrayList基于数组,适合随机访问,但在中间插入和删除元素效率较低。Vector同样基于数组并提供线程安全性,但性能较低。LinkedList使用链表结构,适合频繁的插入和删除操作,但随机访问性能较差。此外,LinkedList还可用作堆栈、队列和双向队列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 的 List 是非常常用的数据类型。

List 是有序的 Collection,它一共有三个实现类:

1.ArrayList

2.Vector

3.LinkedList

看一下它们之间的关系:

话外音:图中关系是 UML 类图表示。

实线箭头表示,继承,从一个非接口类继承。

虚线箭头表示,实现实现一个接口。

1.ArrayList(数组)

ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。

数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。

当从 ArrayList 的中间位置插入或者删除元素时,需要对数组进行复制、移动代价比较高。

因此,它适合随机查找和遍历,不适合插入和删除。

2.Vector(数组实现、线程同步)

Vector 与 ArrayList 一样,也是通过数组实现的,不同的是它支持线程的同步,既某一时刻只有一个线程能够写 Vector

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值