更新時(shí)間:2023-03-23 來(lái)源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
ArrayList和Vector都是實(shí)現(xiàn)了List接口的動(dòng)態(tài)數(shù)組,它們的實(shí)現(xiàn)方式很相似,但也有以下幾點(diǎn)不同:
1.線(xiàn)程安全性:Vector是線(xiàn)程安全的,而ArrayList則不是線(xiàn)程安全的。也就是說(shuō),在多線(xiàn)程環(huán)境下,Vector比ArrayList更適合使用。
2.擴(kuò)容方式:當(dāng)需要增加容量時(shí),Vector默認(rèn)增加原來(lái)容量的一倍,而ArrayList增加原來(lái)容量的一半。這也是為什么在使用ArrayList時(shí),如果能夠提前確定List的大小,最好使用帶初始容量的構(gòu)造函數(shù)。
接下來(lái)我們使用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);
}
// 測(cè)試Vector的線(xiàn)程安全性
new Thread(() -> {
for (int i = 0; i < 10; i++) {
vector.add("Thread " + i);
}
}).start();
// 等待一段時(shí)間,確保子線(xiàn)程執(zhí)行完畢
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);
}
}
} 輸出結(jié)果:
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的使用方式很相似,但在多線(xiàn)程環(huán)境下,Vector比ArrayList更適合使用。
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線(xiàn)均薪資 1W+
2025-09-19【AI鴻蒙開(kāi)發(fā)】上海校區(qū)AI鴻蒙開(kāi)發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19