# Java 中的`Vector`

> 原文： [https://beginnersbook.com/2013/12/vector-in-java/](https://beginnersbook.com/2013/12/vector-in-java/)

`Vector`实现`List`接口。与`ArrayList`一样，它也维护插入顺序，但它很少在非线程环境中使用，因为它是同步的，因此它在搜索，添加，删除和更新其元素时表现不佳。

#### 创建向量类对象的三种方法：

**方法 1：**

```java
Vector vec = new Vector();
```

它创建一个空的`Vector`，默认初始容量为 10。这意味着当需要将第 11 个元素插入`Vector`时，将重新调整`Vector`的大小。注意：默认情况下，向量将其大小加倍。即，在这种情况下，`Vector`大小将保持 10 到 10 次插入，一旦我们尝试插入第 11 个元素，它将变为 20（默认容量 10 的两倍）。

**方法 2：**

语法：`Vector object= new Vector(int initialCapacity)`

```java
Vector vec = new Vector(3);
```

它将创建一个初始容量为 3 的`Vector`。

**方法 3：**

语法：

```java
Vector object= new vector(int initialcapacity, capacityIncrement)
```

例：

```java
Vector vec= new Vector(4, 6)
```

这里我们提供了两个论点。初始容量为 4，`capacityIncrement`为 6。这意味着插入第 5 个元素时，大小为 10（`4 + 6`），第 11 个插入时为 16（`10 + 6`）。

## Java 中`Vector`的完整示例：

```java
import java.util.*;

public class VectorExample {

   public static void main(String args[]) {
      /* Vector of initial capacity(size) of 2 */
      Vector<String> vec = new Vector<String>(2);

      /* Adding elements to a vector*/
      vec.addElement("Apple");
      vec.addElement("Orange");
      vec.addElement("Mango");
      vec.addElement("Fig");

      /* check size and capacityIncrement*/
      System.out.println("Size is: "+vec.size());
      System.out.println("Default capacity increment is: "+vec.capacity());

      vec.addElement("fruit1");
      vec.addElement("fruit2");
      vec.addElement("fruit3");

      /*size and capacityIncrement after two insertions*/
      System.out.println("Size after addition: "+vec.size());
      System.out.println("Capacity after increment is: "+vec.capacity());

      /*Display Vector elements*/
      Enumeration en = vec.elements();
      System.out.println("\nElements are:");
      while(en.hasMoreElements())
         System.out.print(en.nextElement() + " ");
   }
}
```

输出：

```java
Size is: 4
Default capacity increment is: 4
Size after addition: 7
Capacity after increment is: 8

Elements are:
Apple Orange Mango Fig fruit1 fruit2 fruit3
```

## 常用的`Vector`类方法：

1.  `void addElement(Object element)`：它在`Vector`的末尾插入元素。
2.  `int capacity()`：此方法返回向量的当前容量。
3.  `int size()`：它返回向量的当前大小。
4.  `void setSize(int size)`：它使用指定的大小更改现有大小。
5.  `boolean contains(Object element)`：此方法检查`Vector`中是否存在指定的元素。如果找到该元素，则返回`true`，否则返回`false`。
6.  `boolean containsAll(Collection c)`：如果`Vector`中存在集合`c`的所有元素，则返回`true`。
7.  `Object elementAt(int index)`：它返回`Vector`中指定位置的元素。
8.  `Object firstElement()`：它用于获取向量的第一个元素。
9.  `Object lastElement()`：返回数组的最后一个元素。
10.  `Object get(int index)`：返回指定索引处的元素。
11.  `boolean isEmpty()`：如果`Vector`没有任何元素，则此方法返回`true`。
12.  `boolean remove(Object element)`：从向量中移除指定的元素。
13.  `boolean removeAll(Collection c)`：它从向量中删除所有存在于`Collection c`中的元素。
14.  `void setElementAt(Object element, int index)`：它使用给定元素更新指定索引的元素。

## `Vector`教程

这是 beginnersbook.com 上发布的`Vector`教程列表。学习快乐！

#### `Vector`基础知识

*   [从`Vector`获取子列表](https://beginnersbook.com/2014/06/how-to-get-sub-list-of-vector-example-in-java/) 
*   [使用`Collections.sort()`对向量进行排序](https://beginnersbook.com/2014/06/how-to-sort-vector-using-collections-sort-in-java-example/)
*   [使用索引在`Vector`中搜索元素](https://beginnersbook.com/2014/06/search-elements-in-vector-using-index-java-example/)
*   [将一个`Vector`的元素复制到另一个](https://beginnersbook.com/2013/12/copy-all-the-elements-of-one-vector-to-another-vector-example/)

#### 删除/排序/替换

*   [从`Vector`中删除元素](https://beginnersbook.com/2014/06/remove-vector-element-java-example/) 
*   [从`Vector`中的指定索引中删除元素](https://beginnersbook.com/2014/06/how-to-remove-vector-elements-using-index-in-java-example/) 
*   [从`Vector`中删除所有元素](https://beginnersbook.com/2014/06/remove-all-elements-from-vector-in-java-example/) 
*   [替换`Vector`中的元素](https://beginnersbook.com/2014/06/replace-vector-elements-using-index-java-example/) 
*   [设置`Vector`大小](https://beginnersbook.com/2014/06/how-to-set-vector-size-example/)

#### `Iterator`/`ListIterator`/`Enum`

*   [`Vector`枚举示例](https://beginnersbook.com/2014/06/vector-enumeration-example-in-java/)
*   [`Vector`迭代器示例](https://beginnersbook.com/2014/06/vector-iterator-example-in-java/)
*   [`Vector ListIterator`示例](https://beginnersbook.com/2014/06/vector-listiterator-example-in-java/)

#### 转换

*   [将`Vector`转换为列表](https://beginnersbook.com/2014/07/java-convert-vector-to-list-example/)
*   [将`Vector`转换为`ArrayList`](https://beginnersbook.com/2014/07/java-convert-vector-to-arraylist-example/)
*   [将`Vector`转换为字符串数组](https://beginnersbook.com/2014/07/how-to-convert-vector-to-string-array-in-java/)

#### 差异

*   [`Vector` vs `ArrayList`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-vector-in-java/)

#### 参考

*   [`Vector`文档](https://docs.oracle.com/javase/7/docs/api/java/util/Vector.html)