Vector

Vector

Vector
可实现自动增长的对象数组,
Vector与ArrayList一样,也是通过数组实现的
Vector属于线程安全级别的,因为线程安全需要更大的系统开销,访问它比访问ArrayList慢

Vector 构造方法:
public vector() // 系统会自动对向量进行管理
public vector(int initialcapacity,int capacityIncrement)
public vector(int initialcapacity)
参数:
initialcapacity:
—设定向量对象的容量(即向量对象可存储数据的大小).当存放的数据个数超过容量时,系统会扩充向量对象存储容量
capacityincrement:
—每次扩充的扩充值。capacityincrement为0的时候,则每次扩充一倍

//当数组的大小不够的时候,需要重新建立数组,然后将元素拷贝到新的数组内,Vector的扩展数组的大小

private void ensureCapacityHelper(int minCapacity) {
   int oldCapacity = elementData.length; // 存储数据数组的长度
   if (minCapacity > oldCapacity) {
       Object[] oldData = elementData;
       int newCapacity = (capacityIncrement > 0) ? (oldCapacity + capacityIncrement) : (oldCapacity * 2); 
       // capacityincrement为0,则Vector每次扩充一倍,capacityincrement>0时,则Vector每次扩充capacityIncrement 
       if (newCapacity < minCapacity) { //
           newCapacity = minCapacity;
       }
       elementData = Arrays.copyOf(elementData, newCapacity);
   }
}

插入功能:
public final synchronized void adddElement(Object obj) — 将obj插入向量的尾部。obj可以是任何类型的对象。对同一个向量对象,亦可以在其中插入不同类的对象。但插入的应是对象而不是数值(插入数值时要将其转换成相应的对象类—装箱)。
如:
Vector v1 = new Vector();
v1.addElement(new Integer(1));
public final synchronized void setElementAt(Object obj,int index) — 将index处的对象设置成obj,原来的对象将被覆盖。
public final synchronized void insertElementAt(Object obj,int index) — 在index指定的位置插入obj,原来对象以及此后的对象依次往后移动。

删除功能:
public final synchronized void removeElement(Object obj) — 从向量中删除obj,若有多个存在,则从向量头开始试,删除找到的第一个与obj相同的向量成员。
public final synchronized void removeAllElement() — 删除向量所有的对象
public fianl synchronized void removeElementAt(int index) — 删除index所指的地方的对象

查询搜索功能:
public final int indexOf(Object obj) — 从向量头开始搜索obj,返回所遇到的第一个obj对应的下标,若不存在此obj,返回-1.
public final int lastindexOf(Object obj) — 从向量尾部开始逆向搜索obj.
public final synchronized int indexOf(Object obj,int index) — 从index所表示的下标处开始搜索obj.
public final synchornized int lastIndex(Object obj,int index) — 从index所表示的下标处由尾至头逆向搜索obj.
public final synchornized firstElement() — 获取向量对象中的首个obj
public final synchornized Object lastElement() — 获取向量对象的最后一个obj

获取/设置大小
public final int size() — 此方法用于获取向量元素的个数。它们返回值是向量中实际存在的元素个数,而非向量容量。可以调用方法capacity()来获取容量值。
public final synchronized void setsize(int newsize) — 此方法用来定义向量的大小,若向量对象现有成员个数已经超过了newsize的值,则超过部分的多余元素会丢失。

遍历元素
public final synchronized Enumeration elements() — 此方法将向量对象对应到一个枚举类型。java.util包中的其他类中也都有这类方法,以便于用户获取对应的枚举类型。
Enumeration是java.util中的一个接口类,它封装了有关枚举数据集合的方法,方法:
hasMoreElement() — 来判断集合中是否还有其他元素
nextElement() — 来获取下一个元素(可以依次获得集合中的元素)
如:

Vector v1 = new Vector(); 
v1.addElement(new Integer(1)); 
v1.addElement(new Integer(2)); 
v1.insertElementAt(new Integer(3),2);
v1.insertElementAt(new Float(1.2),3);
Enumeration enum = v1.elements(); 
while(enum.hasMoreElements()){
  System.out.println(enum.nextElement()+"");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值