java list和vector_arraylist和vector的区别是什么?主要区别有哪些?java

java当中arraylist和vector的区别你都了解吗?在这两者之间究竟有什么不同呢?下面就让我们一起来做一下详细的了解吧。

一、区别

首先,arraylist和vector这两类都实现List接口。

List接口一共有3个实现类,一个是ArrayList、一个是Vector、一个是LinkedList。

List用来存放多个元素,可以维护元素的次序,并且,还允许元素的重复。

下面就重点的来个大家介绍一下arraylist和vector这两个具体实现类的相关区别。

1、ArrayList:

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

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

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

所以说,它适合随机查找和遍历,不适合插入和删除。

2、Vector

Vector和ArrayList相同,都是通过数组实现的,但是,区别就在于Vector支持线程的同步。

也就是一时刻只有一个线程可以写Vector,避免多线程同时写而引起的不一致性,可是,实现同步需要很高的花费,所以,访问它比访问ArrayList慢。

除此之外,arraylist和vector的扩展数组的大小也不同。

arraylist:public boolean add(E e)

{

ensureCapacity(size + 1); // 增加元素,判断是否能够容纳。不能的话就要新建数组

elementData[size++] = e;

return true;

}

public void ensureCapacity(int minCapacity)

{

modCount++;

int oldCapacity = elementData.length;

if (minCapacity > oldCapacity)

{

Object oldData[] = elementData; // 此行没看出来用处,不知道开发者出于什么考虑

int newCapacity = (oldCapacity * 3) / 2 + 1; // 增加新的数组的大小

if (newCapacity 

newCapacity = minCapacity;

// minCapacity is usually close to size, so this is a win:

elementData = Arrays.copyOf(elementData, newCapacity);

}

}

vector:private void ensureCapacityHelper(int minCapacity)

{

int oldCapacity = elementData.length;

if (minCapacity > oldCapacity)

{

Object[] oldData = elementData;

int newCapacity = (capacityIncrement > 0) ?

(oldCapacity + capacityIncrement) : (oldCapacity * 2);

if (newCapacity 

{

newCapacity = minCapacity;

}

elementData = Arrays.copyOf(elementData, newCapacity);

}

}

对于arraylist和vector的区别你都清楚了吗?更多java常见问题,欢迎继续通过奇Q工具网来了解。

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值