2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁常見問題正文

ArrayList和Vector的區別?

更新時間:2023-03-23 來源:黑馬程序員 瀏覽量:

IT培訓班

  ArrayList和Vector都是實現了List接口的動態數組,它們的實現方式很相似,但也有以下幾點不同:

  1.線程安全性:Vector是線程安全的,而ArrayList則不是線程安全的。也就是說,在多線程環境下,Vector比ArrayList更適合使用。

  2.擴容方式:當需要增加容量時,Vector默認增加原來容量的一倍,而ArrayList增加原來容量的一半。這也是為什么在使用ArrayList時,如果能夠提前確定List的大小,最好使用帶初始容量的構造函數。

  接下來我們使用Java代碼演示ArrayList和Vector的不同之處:

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

public class Main {
    public static void main(String[] args) {
        List<String> arrayList = new ArrayList<>();
        List<String> vector = new Vector<>();

        // 向ArrayList和Vector中添加元素
        for (int i = 0; i < 10; i++) {
            arrayList.add("ArrayList " + i);
            vector.add("Vector " + i);
        }

        // 遍歷ArrayList和Vector
        System.out.println("ArrayList:");
        for (String s : arrayList) {
            System.out.println(s);
        }

        System.out.println("\nVector:");
        for (String s : vector) {
            System.out.println(s);
        }

        // 測試Vector的線程安全性
        new Thread(() -> {
            for (int i = 0; i < 10; i++) {
                vector.add("Thread " + i);
            }
        }).start();

        // 等待一段時間,確保子線程執行完畢
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 再次遍歷Vector,可以看到新加入的元素
        System.out.println("\nVector after adding elements in another thread:");
        for (String s : vector) {
            System.out.println(s);
        }
    }
}

  輸出結果:

ArrayList:
ArrayList 0
ArrayList 1
ArrayList 2
ArrayList 3
ArrayList 4
ArrayList 5
ArrayList 6
ArrayList 7
ArrayList 8
ArrayList 9

Vector:
Vector 0
Vector 1
Vector 2
Vector 3
Vector 4
Vector 5
Vector 6
Vector 7
Vector 8
Vector 9

Vector after adding elements in another thread:
Vector 0
Vector 1
Vector 2
Vector 3
Vector 4
Vector 5
Vector 6
Vector 7
Vector 8
Vector 9
Thread 0
Thread 1
Thread 2
Thread 3
Thread 4
Thread 5
Thread 6
Thread 7
Thread 8
Thread 9

  可以看到,ArrayList和Vector的使用方式很相似,但在多線程環境下,Vector比ArrayList更適合使用。

分享到:
在線咨詢 我要報名
和我們在線交談!