English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java flow control

Java array

Java object-oriented (I)

Java object-oriented (II)

Java object-oriented (III)

Java 異常處理

Java List

Java Queue (queue)

Java Map collection

Java Set collection

Java input/output (I/O)

Java Reader/Writer

Other Java topics

Java Vector(向量)

In this tutorial, we will learn about the Vector class and how to use it. We will also learn about the differences between it and the ArrayList class, and why we should switch to the array list.

The Vector class is an implementation of the List interface that allows us to create something similar toArrayListclass of adjustable array.

Java vector (vector) and ArrayList

In Java, both ArrayList and Vector implement the List interface and provide the same functionality. However, there are some differences between them.

La classe Vector sincronizza ogni singola operazione. Questo significa che ogni volta che vogliamo eseguire un'operazione su un vettore, la classe Vector applicherà automaticamente un blocco di sincronizzazione a quell'operazione.

Vector类同步每个单独的操作。这意味着每当我们想对向量执行某些操作时,Vector类就会自动对该操作应用锁。

这是因为当一个线程访问一个vector时,同时另一个线程试图访问它,会生成一个称为ConcurrentModificationException的异常。因此,对每个操作持续使用锁会降低向量的效率。

但是,在ArrayList中,方法是不同步的。相反,它使用Collections.synchronizedList()方法对整个列表进行同步。注意:

由于向量(vector)不是线程安全的并且效率较低,因此建议使用ArrayList代替Vector。

创建向量(vector)

这是我们如何用Java创建向量(vector)。

Vector<Type> vector = new Vector<>();

此处,Type表示vector存储的数据类型。例如,
// 创建整数类型的vector
// 创建字符串类型的vector
Vector<String> vector = new Vector<>();

向量(vector)方法

Vector类还提供List接口的可调整大小的数组实现(类似于ArrayList类)。 一些Vector方法是:

向量添加元素

  • add(element) - 向向量(vector)添加元素

  • add(index, element) - 将元素添加到指定位置

  • addAll(vector) - 将向量(vector)的所有元素添加到另一个向量(vector)

Ad esempio,

import java.util.Vector;
class Main {
    public static void main(String[] args) {
        Vector<String> mammals = new Vector<>();
        // 使用 add() 方法
        mammals.add("Dog");
        mammals.add("Horse");
        // 使用索引号
        mammals.add(2, "Cat");
        System.out.println("Vector: " + mammals);
        // 使用 addAll() 方法
        Vector<String> animals = new Vector<>();
        animals.add("Crocodile");
        animals.addAll(mammals);
        System.out.println("New Vector: " + animals);
    }
}

Risultato di output

Vettore: [Cane, Cavallo, Gatto]
Nuovo Vettore: [Coccodrillo, Cane, Cavallo, Gatto]

Accesso agli elementi del vettore

  • get(index) - Restituisce l'elemento specificato dall'indice

  • iterator() - Restituisce un oggetto iteratore per accedere in ordine agli elementi del vettore

Ad esempio,

import java.util.Iterator;
import java.util.Vector;
class Main {
    public static void main(String[] args) {
        Vector<String> animals = new Vector<>();
        animals.add("Cane");
        animals.add("Cavallo");
        animals.add("Gatto");
        // Utilizzo del metodo get()
        String element = animals.get(2);
        System.out.println("Elemento all'indice 2: " + element);
        // Utilizzo dell'iterator
        Iterator<String> iterate = animals.iterator();
        System.out.print("Vettore: ");
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

Risultato di output

Elemento all'indice 2: Gatto
Vettore: Cane, Cavallo, Gatto,

Eliminazione di elementi del vettore

  • remove(index) - Elimina l'elemento dalla posizione specificata

  • removeAll() - Elimina tutti gli elementi

  • clear() - Elimina tutti gli elementi. È più efficiente di removeAll()

Ad esempio,

import java.util.Vector;
class Main {
    public static void main(String[] args) {
        Vector<String> animals = new Vector<>();
        animals.add("Cane");
        animals.add("Cavallo");
        animals.add("Gatto");
        System.out.println("Vettore Iniziale: " + animals);
        // Utilizzo del metodo remove()
        String element = animals.remove(1);
        System.out.println("Rimosso Elemento: " + element);
        System.out.println("New Vector: " + animals);
        // Usa il metodo clear()
        animals.clear();
        System.out.println("Vector after clear(): " + animals);
    }
}

Risultato di output

Vector iniziale: [Dog, Horse, Cat]
Elemento rimosso: Horse
New Vector: [Dog, Cat]
Vector after clear(): []

Altri metodi del vettore (vector)

MetodoDescrizione del contenuto
set()Modifica l'elemento del vettore
size()Restituisci la dimensione del vettore
toArray()Converti il vettore in un array
toString()Converti il vettore in una stringa
contains()

Cerca l'elemento specificato nel vettore e restituisci un valore booleano