Java Vector 类



介绍

Vector 实现动态数组。它类似于 ArrayList,但有两个区别:

  • Vector 是同步的。

  • Vector 包含许多集合框架中不包含的遗留方法。

如果您事先不知道数组的大小,或者只需要一个在程序生命周期内可以改变大小的数组,那么 Vector 将非常有用。

java.util.Vector 类实现可增长的对象数组。类似于数组,它包含可以使用整数索引访问的组件。以下是关于 Vector 的重要几点:

  • Vector 的大小可以根据需要增长或缩小以适应添加和删除项目。

  • 每个向量都尝试通过维护容量容量增量来优化存储管理。

  • 从 Java 2 平台 v1.2 开始,此类经过改造以实现 List 接口。

  • 与新的集合实现不同,Vector 是同步的。

  • 此类是 Java 集合框架的成员。

类声明

以下是java.util.Vector类的声明:

public class Vector<E>
   extends AbstractList<E>
   implements List<E>, RandomAccess, Cloneable, Serializable

这里<E>代表一个元素,可以是任何类。例如,如果您正在构建一个整数的数组列表,则应按如下方式初始化它:

ArrayList<Integer> list = new ArrayList<Integer>();  

类构造函数

序号 构造函数和说明
1

Vector()

此构造函数用于创建一个空向量,以便其内部数据数组大小为 10,其标准容量增量为零。

2

Vector(Collection<? extends E> c)

此构造函数用于创建一个包含指定集合元素的向量,其顺序与集合的迭代器返回的顺序相同。

3

Vector(int initialCapacity)

此构造函数用于创建一个具有指定初始容量且容量增量等于零的空向量。

4

Vector(int initialCapacity, int capacityIncrement)

此构造函数用于创建一个具有指定初始容量和容量增量的空向量。

类方法

序号 方法和说明
1 boolean add(E e)

此方法将指定的元素添加到此向量的末尾。

2 boolean addAll(Collection<? extends E> c)

此方法将指定集合中的所有元素添加到此向量的末尾。

3 void addElement(E obj)

此方法将指定的组件添加到此向量的末尾,将其大小增加一。

4 int capacity()

此方法返回此向量的当前容量。

5 void clear()

此方法从此向量中删除所有元素。

6 Vector clone()

此方法返回此向量的克隆。

7 boolean contains(Object o)

如果此向量包含指定的元素,则此方法返回 true。

8 boolean containsAll(Collection<?> c)

如果此 Vector 包含指定集合中的所有元素,则此方法返回 true。

9 void copyInto(Object[ ] anArray)

此方法将此向量的组件复制到指定的数组中。

10 E elementAt(int index)

此方法返回指定索引处的组件。

11 Enumeration<E> elements()

此方法返回此向量的组件的枚举。

12 void ensureCapacity(int minCapacity)

此方法根据需要增加此向量的容量,以确保它至少可以容纳最小容量参数指定的组件数量。

13 boolean equals(Object o)

此方法比较指定的 Object 与此 Vector 的相等性。

14 E firstElement()

此方法返回此向量的第一个组件(索引 0 处的项目)。

15 void forEach​(Consumer<? super E> action)

此方法对 Iterable 的每个元素执行给定的操作,直到所有元素都已处理或操作引发异常。

16 E get(int index)

此方法返回此向量中指定位置处的元素。

17 int hashCode()

此方法返回此向量的哈希码值。

18 int indexOf(Object o)

此方法返回此向量中指定元素的第一次出现的索引,如果此向量不包含该元素,则返回 -1。

19 void insertElementAt(E obj, int index)

此方法将指定的對象作为组件插入此向量中的指定索引处。

20 boolean isEmpty()

此方法测试此向量是否没有组件。

21 Iterator<E> iterator()

此方法返回此列表中元素的迭代器,顺序正确。

22 E lastElement()

此方法返回向量的最后一个组件。

23 int lastIndexOf​(Object o)

此方法返回此向量中指定元素的最后一次出现的索引,如果此向量不包含该元素,则返回 -1。

24 ListIterator<E> listIterator()

此方法返回此列表中元素的列表迭代器(顺序正确)。

25 E remove(int index)

此方法从此向量中删除指定位置处的元素。

26 boolean removeAll(Collection<?> c)

此方法从此向量中删除其包含在指定集合中的所有元素。

27 void removeAllElements()

此方法从此向量中删除所有组件并将大小设置为零。

28 boolean removeElement(Object obj)

此方法从此向量中删除参数的第一次出现。

29 void removeElementAt(int index)

此方法删除指定索引处的组件。

30 boolean removeIf​(Predicate<? super E> filter)

删除满足给定谓词的此集合的所有元素。

31 boolean retainAll(Collection<?> c)

此方法仅保留此向量中包含在指定集合中的元素。

32 E set(int index, E element)

此方法将此向量中指定位置处的元素替换为指定的元素。

33 void setElementAt(E obj, int index)

此方法将此向量的指定索引处的组件设置为指定的對象。

34 void setSize(int newSize)

此方法设置此向量的 size。

35 int size()

此方法返回此向量中组件的数量。

36 Spliterator<E> spliterator()

在此列表中的元素上创建一个延迟绑定和快速失败的 Spliterator。

37 List <E> subList(int fromIndex, int toIndex)

此方法返回此列表从 fromIndex(包含)到 toIndex(不包含)部分的视图。

38 object[] toArray()

此方法返回一个数组,其中包含此向量中的所有元素,顺序正确。

39 String toString()

此方法返回此向量的字符串表示形式,其中包含每个元素的字符串表示形式。

40 void trimToSize()

此方法将此向量的容量修剪为向量的当前大小。

继承的方法

此类继承自以下类的方法:

  • java.util.AbstractMap
  • java.lang.Object
  • java.util.List

添加元素和迭代 Vector 示例

以下程序说明了 Vector 集合支持的几种方法:

import java.util.*;
public 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();
   }
}

这将产生以下结果:

输出

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
广告