Java中Vector类和Stack类的学习

发表于:2014-3-12 10:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:csu3m    来源:51Testing软件测试网采编

分享:
  Vector在capacityIncrement大于0时扩容capacityIncrement大小,否则为原始容量的2倍。如果使用构造函数来new一个Vector时,不指定capacityIncrement,则扩容时扩大为原来的2倍。
private void grow(int minCapacity) {
// overflow-conscious code
int oldCapacity = elementData.length;
int newCapacity = oldCapacity + ((capacityIncrement > 0) ?
capacityIncrement : oldCapacity);
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
if (newCapacity - MAX_ARRAY_SIZE > 0)
newCapacity = hugeCapacity(minCapacity);
elementData = Arrays.copyOf(elementData, newCapacity);
}
  Vector的三种构造函数:
public Vector(int initialCapacity, int capacityIncrement) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
this.capacityIncrement = capacityIncrement;
}
public Vector(int initialCapacity) {
this(initialCapacity, 0);
}
public Vector() {
this(10);
}
  Vector的方法:
  插入功能:
  (1)public final synchronized void adddElement(Object obj)
  将obj插入向量的尾部。obj可以是任何类型的对象。对同一个向量对象,亦可以在其中插入不同类的对象。但插入的应是对象而不是数值,所以插入数值时要注意将数组转换成相应的对象。
  例如:要插入整数1时,不要直接调用v1.addElement(1),正确的方法为:
  Vector v1 = new Vector();
  Integer integer1 = new Integer(1);
  v1.addElement(integer1);
  (2)public final synchronized void setElementAt(Object obj,int index)
  将index处的对象设置成obj,原来的对象将被覆盖。
  (3)public final synchronized void insertElement(Object obj,int index)
  在index指定的位置插入obj,原来对象以及此后的对象依次往后顺延。
32/3<123>
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号