Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java Vector(向量)

在本教程中,我們將學(xué)習(xí)Vector類以及如何使用它。我們還將學(xué)習(xí)它與ArrayList類的不同之處,以及為什么我們應(yīng)該改用數(shù)組列表。

Vector類是List接口的一個(gè)實(shí)現(xiàn),它允許我們創(chuàng)建類似于ArrayList類的可調(diào)整大小的數(shù)組。

Java向量(vector)與ArrayList

在Java中,ArrayList和Vector都實(shí)現(xiàn)List接口并提供相同的功能。但是,它們之間存在一些差異。

Vector類同步每個(gè)單獨(dú)的操作。這意味著每當(dāng)我們想對(duì)向量執(zhí)行某些操作時(shí),Vector類就會(huì)自動(dòng)對(duì)該操作應(yīng)用鎖。

這是因?yàn)楫?dāng)一個(gè)線程訪問一個(gè)vector時(shí),同時(shí)另一個(gè)線程試圖訪問它,會(huì)生成一個(gè)稱為ConcurrentModificationException的異常。因此,對(duì)每個(gè)操作持續(xù)使用鎖會(huì)降低向量的效率。

但是,在ArrayList中,方法是不同步的。相反,它使用Collections.synchronizedList()方法對(duì)整個(gè)列表進(jìn)行同步。

注意:由于向量(vector)不是線程安全的并且效率較低,因此建議使用ArrayList代替Vector。

創(chuàng)建向量(vector)

這是我們?nèi)绾斡肑ava創(chuàng)建向量(vector)。

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

此處,Type表示vector存儲(chǔ)的數(shù)據(jù)類型。例如,

//創(chuàng)建整數(shù)類型的vector
Vector<Integer> vector= new Vector<>();

//創(chuàng)建字符串類型的vector
Vector<String> vector= new Vector<>();

向量(vector)方法

Vector類還提供List接口的可調(diào)整大小的數(shù)組實(shí)現(xiàn)(類似于ArrayList類)。 一些Vector方法是:

向量添加元素

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

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

  • addAll(vector) - 將向量(vector)的所有元素添加到另一個(gè)向量(vector)

例如,

import java.util.Vector;

class Main {
    public static void main(String[] args) {
        Vector<String> mammals= new Vector<>();

        //使用add()方法
        mammals.add("Dog");
        mammals.add("Horse");

        //使用索引號(hào)
        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);
    }
}

輸出結(jié)果

Vector: [Dog, Horse, Cat]
New Vector: [Crocodile, Dog, Horse, Cat]

訪問vector元素

  • get(index) - 返回由索引指定的元素

  • iterator() - 返回迭代器對(duì)象以順序訪問矢量元素

例如,

import java.util.Iterator;
import java.util.Vector;

class Main {
    public static void main(String[] args) {
        Vector<String> animals= new Vector<>();
        animals.add("Dog");
        animals.add("Horse");
        animals.add("Cat");

        // 使用 get() 方法
        String element = animals.get(2);
        System.out.println("Element at index 2: " + element);

        // 使用 iterator()
        Iterator<String> iterate = animals.iterator();
        System.out.print("Vector: ");
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

輸出結(jié)果

Element at index 2: Cat
Vector: Dog, Horse, Cat,

刪除vector元素

  • remove(index) - 從指定位置刪除元素

  • removeAll() - 刪除所有元素

  • clear() - 刪除所有元素。它比removeAll()更高效

例如,

import java.util.Vector;

class Main {
    public static void main(String[] args) {
        Vector<String> animals= new Vector<>();
        animals.add("Dog");
        animals.add("Horse");
        animals.add("Cat");

        System.out.println("Initial Vector: " + animals);

        //使用 remove() 方法
        String element = animals.remove(1);
        System.out.println("Removed Element: " + element);
        System.out.println("New Vector: " + animals);

        // 使用 clear() 方法
        animals.clear();
        System.out.println("Vector after clear(): " + animals);
    }
}

輸出結(jié)果

Initial Vector: [Dog, Horse, Cat]
Removed Element: Horse
New Vector: [Dog, Cat]
Vector after clear(): []

向量(vector)其他方法

方法內(nèi)容描述
set()更改向量的元素
size()返回向量的大小
toArray()將向量轉(zhuǎn)換為數(shù)組
toString()將向量轉(zhuǎn)換為字符串
contains()

在向量中搜索指定的元素并返回一個(gè)布爾值

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清