Java Vector

2025 年 4 月 1 日 | 阅读 7 分钟

Vector 类似于动态数组,其大小可以增长或收缩。与数组不同,我们可以存储任意数量的元素,因为它没有大小限制。它是 Java 集合框架自 Java 1.2 以来的一部分。它位于 java.util 包中,并实现了 List 接口,因此我们可以在此处使用 List 接口的所有方法。

建议仅在线程安全实现中使用 Vector 类。如果您不需要线程安全实现,则应使用 ArrayList,在这种情况下,ArrayList 的性能更好。

Vector 类返回的迭代器是快速失败的。在并发修改的情况下,它会失败并抛出 ConcurrentModificationException。

它类似于 ArrayList,但有两个区别:

  • Vector 同步。
  • Java Vector 包含许多旧方法,这些方法不是集合框架的一部分。

Java Vector 类声明

Java Vector 构造函数

Vector 类支持四种构造函数。它们如下:

序号构造函数描述
1)vector()它构造一个空向量,默认大小为 10。
2)vector(int initialCapacity)它构造一个空向量,具有指定的初始容量,其容量增量为零。
3)vector(int initialCapacity, int capacityIncrement)它构造一个空向量,具有指定的初始容量和容量增量。
4)Vector( Collection<? extends E> c)它构造一个包含集合 c 元素的向量。

Java Vector 方法

以下是 Vector 类方法的列表:

序号方法描述
1)add()它用于将指定的元素追加到给定的向量中。
2)addAll()它用于将指定集合中的所有元素追加到此 Vector 的末尾。
3)addElement()它用于将指定的组件追加到此向量的末尾。它将向量的大小增加一。
4)capacity()它用于获取此向量的当前容量。
5)clear()它用于删除此向量中的所有元素。
6)clone()它返回此向量的克隆。
7)contains()如果向量包含指定的元素,则返回 true。
8)containsAll()如果向量包含指定集合中的所有元素,则返回 true。
9)copyInto()它用于将向量的组件复制到指定的数组中。
10)elementAt()它用于获取指定索引处的组件。
11)elements()它返回一个向量组件的枚举。
12)ensureCapacity()如果需要,它用于增加正在使用的向量的容量。它确保向量至少能容纳最小容量参数指定的组件数量。
13)equals()它用于将指定的对象与向量进行相等性比较。
14)firstElement()它用于获取向量的第一个组件。
15)forEach()它用于对可迭代对象中的每个元素执行给定的操作,直到所有元素都被处理或操作引发异常。
16)get()它用于在向量的指定位置获取元素。
17)hashCode()它用于获取向量的哈希码值。
18)indexOf()它用于获取向量中指定元素第一次出现的索引。如果向量不包含该元素,则返回 -1。
19)insertElementAt()它用于在指定索引处将指定的对象作为组件插入给定的向量中。
20)isEmpty()它用于检查此向量是否没有组件。
21)iterator()它用于按顺序获取列表中元素的迭代器。
22)lastElement()它用于获取向量的最后一个组件。
23)lastIndexOf()它用于获取向量中指定元素最后一次出现的索引。如果向量不包含该元素,则返回 -1。
24)listIterator()它用于按顺序获取列表中元素的列表迭代器。
25)remove()它用于从向量中删除指定的元素。如果向量不包含该元素,则保持不变。
26)removeAll()它用于删除向量中存在于指定集合中的所有元素。
27)removeAllElements()它用于删除向量中的所有元素并将向量的大小设置为零。
28)removeElement()它用于删除向量中参数的第一次(最低索引)出现。
29)removeElementAt()它用于删除指定索引处的组件。
30)removeIf()它用于删除列表中所有满足给定谓词的元素。
31)removeRange()它用于删除向量中索引在 fromIndex(包含)和 toIndex(不包含)之间的所有元素。
32)replaceAll()它用于将列表中每个元素替换为将运算符应用于该元素的结果。
33)retainAll()它用于仅保留向量中存在于指定集合中的元素。
34)set()它用于将向量中指定位置的元素替换为指定的元素。
35)setElementAt()它用于将向量指定索引处的组件设置为指定的对象。
36)setSize()它用于设置给定向量的大小。
37)size()它用于获取给定向量中的组件数量。
38)sort()它用于根据指定的 Comparator 引起的顺序对列表进行排序。
39)spliterator()它用于在列表中创建元素的延迟绑定且快速失败的 Spliterator。
40)subList()它用于获取列表中 fromIndex(包含)和 toIndex(不包含)之间的部分的视图。
41)toArray()它用于获取一个数组,其中包含此向量中的所有元素,顺序正确。
42)toString()它用于获取向量的字符串表示。
43)trimToSize()它用于将向量的容量修剪到向量的当前大小。

Java Vector 示例

示例

编译并运行

输出

Elements are: [Tiger, Lion, Dog, Elephant, Rat, Cat, Deer]

Java Vector 示例 2

示例

编译并运行

输出

Size is: 4
Default capacity is: 4
Vector element is: [Tiger, Lion, Dog, Elephant]
Size after addition: 7
Capacity after addition is: 8
Elements are: [Tiger, Lion, Dog, Elephant, Rat, Cat, Deer]
Tiger is present at the index 0
The first animal of the vector is = Tiger
The last animal of the vector is = Deer

Java Vector 示例 3

示例

编译并运行

输出

Values in vector: [100, 200, 300, 200, 400, 500, 600, 700]
Remove first occourence of element 200: true
Values in vector: [100, 300, 200, 400, 500, 600, 700]
Remove element at index 4: 500
New Value list in vector: [100, 300, 200, 400, 600, 700]
Vector element after removal: [100, 300, 200, 400, 600]
Hash code of this vector = 130123751
Element at index 1 is = 300

下一个主题Java Stack