首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java Vector 類別完整用法指南與範例實作

     編輯:Java 相關知識

java.util.Vector 是一個同步化的動態陣列實作,適用於需要執行緒安全的集合場景。雖然 ArrayList(非同步)執行速度較快,但 Vector 在多執行緒環境下提供穩定與安全保障,仍是常見選擇。

Vector 核心方法總覽

Vector<E> 實作 List<E> 介面,主要方法分類如下:

新增元素

  • boolean add(E o):將指定元素附加至向量末尾
  • void add(int index, E element):在指定位置插入元素
  • boolean addAll(Collection<? extends E> c):依集合迭代器順序將所有元素附加至末尾
  • boolean addAll(int index, Collection<? extends E> c):在指定位置插入集合所有元素
  • void addElement(E obj):將組件添加至末尾,大小增加 1(舊版方法)

容量與大小管理

  • int capacity():返回當前容量
  • void ensureCapacity(int minCapacity):必要時增加容量以確保至少能容納指定組件數
  • void setSize(int newSize):設定向量大小
  • void trimToSize():微調容量使其等於當前大小

查詢與存取

  • E elementAt(int index):返回指定索引處組件
  • E get(int index):返回指定位置元素
  • E firstElement():返回第一個組件(索引 0)
  • E lastElement():返回最後一個組件
  • Enumeration<E> elements():返回組件枚舉
  • int indexOf(Object elem):搜尋第一個匹配項(用 equals 測試)
  • int indexOf(Object elem, int index):從指定索引開始搜尋第一個匹配項
  • int lastIndexOf(Object elem):返回最後一個匹配項索引
  • int lastIndexOf(Object elem, int index):從指定索引向前搜尋

移除元素

  • E remove(int index):移除指定位置元素
  • boolean remove(Object o):移除第一個匹配項
  • boolean removeAll(Collection<?> c):移除包含於指定集合的所有元素
  • void removeAllElements():移除所有組件,大小設為零
  • boolean removeElement(Object obj):移除第一個(索引最小)匹配項
  • void removeElementAt(int index):刪除指定索引組件
  • protected void removeRange(int fromIndex, int toIndex):移除索引範圍內元素

修改與替換

  • E set(int index, E element):用指定元素替換指定位置元素
  • void setElementAt(E obj, int index):設定指定索引處組件

其他常用方法

  • boolean contains(Object elem):測試指定物件是否為向量組件
  • boolean containsAll(Collection<?> c):包含指定集合所有元素返回 true
  • void copyInto(Object[] anArray):將組件複製至指定陣列
  • Object clone():返回向量副本
  • boolean equals(Object o):比較指定物件與向量相等性
  • int hashCode():返回雜湊碼值
  • boolean isEmpty():測試向量是否不包含組件
  • boolean retainAll(Collection<?> c):僅保留包含於指定集合的元素
  • int size():返回組件數
  • List<E> subList(int fromIndex, int toIndex):返回部分視圖(fromIndex 含、toIndex 不含)
  • Object[] toArray():返回包含所有元素的陣列
  • <T> T[] toArray(T[] a):返回指定執行時期類型陣列
  • String toString():返回字串表示(含每個元素字串表示)

Vector vs ArrayList

Vector 同步化、ArrayList 非同步化。ArrayList 執行速度較快,但 Vector 在多執行緒環境下更穩定安全。單執行緒或已有外部同步機制時,優先考慮 ArrayList 或 Collections.synchronizedList。

實作範例

import java.util.*;

public class Test {
    public static void main(String args[]) {
        Vector vecFields = new Vector();
        String goods_name = "aaaaa";

        vecFields.addElement(new Field("goods_name", goods_name));
        vecFields.addElement(new Field("goods_test", "bbbbbb"));
        vecFields.addElement("string_test_sample");

        System.out.println(vecFields.size()); // 顯示長度(此處為 3)
        Field field = (Field) vecFields.elementAt(0);
        System.out.println(field.getFieldName() + ": " + field.getFieldValue());
        field = (Field) vecFields.elementAt(1);
        System.out.println(field.getFieldName() + ": " + field.getFieldValue());
        System.out.println(vecFields.elementAt(2));
    }
}

class Field {
    private String fieldName;
    private String fieldValue;
    public Field(String fieldName, String fieldValue) {
        this.fieldName = fieldName;
        this.fieldValue = fieldValue;
    }
    public String getFieldName() { return this.fieldName; }
    public String getFieldValue() { return this.fieldValue; }
}

執行結果:

3
goods_name: aaaaa
goods_test: bbbbbb
string_test_sample

範例展示 Vector 可儲存異質物件(Field 實例與 String),透過 elementAt() 取得元素並強制轉型使用。注意:Vector 不支援泛型類型安全(舊版 API),實際開發建議優先使用 ArrayList<T> 搭配外部同步或 CopyOnWriteArrayList。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved