Vector和ArrayList对比

本文会对ArrayListVector进行分析,为什么会关注这两个类,主要是因为他们拥有相同的继承结构,接下来就来探索下这两个类实现和效率的异同。

继承结构

可以看到,VectorArrayList都实现了ListRandomAccess接口,都继承了AbstractList。通过他们的继承结构,大致可以猜测他们在元素的处理上存在很多相同的地方。

存储结构

VectorArrayList都使用 Object [] elementData保存数据,但是不同的ArrayListelementData使用transient做了标记,这说明ArrayListelementData不参与对象序列化的过程。

添加元素

  • Vectoradd(E)``add(int, E)``addElement(E obj)``addAll(Collection<? extends E> c)``addAll(int, Collection<? extends E> c)``insertElementAt(E obj, int )
  • ArrayListadd(E)``add(int, E)``addAll(Collection<? extends E> c)``addAll(int, Collection<? extends E> c)在元素的添加上,VectorArrayList差不多提供了相同的接口,但是最大的不同是Vector提供的接口中,除了add(int, E)之外,都是同步接口,但是add(int, E)最终会调用同步方法insertElementAt(E obj, int ),故Vector添加元素都是同步方法;ArrayList添加元素的方法都是非同步方法。

访问

  • Vectorget(int index)``elementAt(int index)*
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值