java学习笔记(6)--ArrayList、Vector与Llinklist的区别

1.List接口–允许数据重复

在进行单个集合处理时,优先考虑List接口

在List接口中,扩展了两个重要方法(List接口独有)

Public E get(int index):根据索引下标取得数据
Public E set (int index,E element):根据索引下标更新数据,
返回修改前的数据

List接口有三个重要的子类:ArrayList、vector,LinkedList

List接口要想保存自定义类的对象,该类必须覆写equals()来使用contains()、remove()等方法;

2.ArrayList、Vector的区别:

1.出现版本:
ArrayList JDK1.2
Vector JDK1.0 (出现在List、Collection接口之前)

2.初始化策略区别
Vector在无参构造执行后将对象数组大小初始化为10
ArrayList采用懒加载策略,在构造方法阶段不初始化对象数组,在第一次添加元素是才初始化对象数组大小为10

3.扩容策略
ArrayList扩容时,新数组大小变为原数组的1.5倍,
Vector扩容时,新数组大小变为原数组的2倍

4.线程安全性:
ArrayList采用异步处理,线程不安全,效率较高
Vector采用在方法上加锁,线程安全,效率较低(即便要使用线程安全的List,也不用Vector)

5.遍历:
Verctor支持较老的迭代器Enumeration,
ArrayList不支持

3.ArrayList和Vector的相同点

底层均使用数组实现

4.ArrayList、LinkedList

LinkedList底层采用双向链表实现,ArrayList底层采用数组实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值