📄 vectordemo.java
字号:
package vector;
/**
Vector实现动态数组。这与ArrayList相似,但两者不同的是:Vector是同步的,并且它
包含了许多不属于类集框架的从以前版本遗留下来的方法。随着Java 2的公布,Vector被重
新设计来扩展AbstractList和实现List接口,因此现在它与类集是完全兼容的。
这里是Vector的构造函数:
Vector( )
Vector(int size)
Vector(int size, int incr)
Vector(Collection c)
第一种形式创建一个原始大小为10的默认矢量。第二种形式创建一个其原始容量由size
指定的矢量。第三种形式创建一个其原始容量由size指定,并且它的增量由incr指定的矢量。
增量指定了矢量每次允许向上改变大小的元素的个数。第四种形式创建一个包含了类集c
中元素的矢量。这个构造函数是在Java 2中新增加的。
所有的矢量开始都有一个原始的容量。在这个原始容量达到以后,下一次再试图向矢
量中存储对象时,矢量自动为那个对象分配空间同时为别的对象增加额外的空间。通过分
配超过需要的内存,矢量减小了可能产生的分配的次数。这种次数的减少是很重要的,因
为分配内存是很花时间的。在每次再分配中,分配的额外空间的总数由在创建矢量时指定
的增量来确定。如果没有指定增量,在每个分配周期,矢量的大小增一倍。
Vector定义了下面的保护数据成员:
int capacityIncrement;
int elementCount;
Object elementData[ ];
增量值被存储在capacityIncrement中。矢量中的当前元素的个数被存储在elementCount
中。保存矢量的数组被存储在elementData中。
除了由List定义的类集方法之外,Vector还定义了几个从以前版本遗留下来的方法,这
些方法列在表15-10中。
该程序的输出如下所示:
Initial size: 0
Initial capacity: 3
Capacity after four additions: 5
Current capacity: 5
Current capacity: 7
Current capacity: 9
First element: 1
Last element: 12
Vector contains 3.
Elements in vector:
1 2 3 4 5.45 6.08 7 9.4 10 11 12
随着Java 2的公布,Vector增加了对迭代函数的支持。现在可以使用迭代函数来替代枚
举去遍历对象(正如前面的程序所做的那样)。例如,下面的基于迭代函数的程序代码可
以被替换到上面的程序中:
// use an iterator to display contents
Iterator vItr = v.iterator();
System.out.println("\nElements in vector:");
while(vItr.hasNext())
System.out.print(vItr.next() + " ");
System.out.println();
因为建议不要使编写枚举新的程序代码,所以通常可以使用迭代函数来对矢量的内容
进行枚举。当然,业已存在的大量的老程序采用了枚举。不过幸运的是,枚举和迭代函数
的工作
*/
// Demonstrate various Vector operations.
import java.util.*;
class VectorDemo {
public static void main(String args[]) {
// initial size is 3, increment is 2
Vector v = new Vector(3, 2);
System.out.println("Initial size: " + v.size());
System.out.println("Initial capacity: " +
v.capacity());
v.addElement(new Integer(1));
v.addElement(new Integer(2));
v.addElement(new Integer(3));
v.addElement(new Integer(4));
System.out.println("Capacity after four additions: " +
v.capacity());
v.addElement(new Double(5.45));
System.out.println("Current capacity: " +
v.capacity());
v.addElement(new Double(6.08));
v.addElement(new Integer(7));
System.out.println("Current capacity: " +
v.capacity());
v.addElement(new Float(9.4));
v.addElement(new Integer(10));
System.out.println("Current capacity: " +
v.capacity());
v.addElement(new Integer(11));
v.addElement(new Integer(12));
System.out.println("First element: " +
(Integer) v.firstElement());
System.out.println("Last element: " +
(Integer) v.lastElement());
if (v.contains(new Integer(3))) {
System.out.println("Vector contains 3.");
// enumerate the elements in the vector.
}
Enumeration vEnum = v.elements();
System.out.println("\nElements in vector:");
while (vEnum.hasMoreElements()) {
System.out.print(vEnum.nextElement() + " ");
}
System.out.println();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -