一、簡介
Vector是一個線程安全的動態數組,在添加和刪除元素時可以自動調整大小。Vector實現了List接口,所以它可以像ArrayList一樣存儲元素。與ArrayList相比,Vector的一個主要優點是它是同步的,因此它是線程安全的。這就意味着在多個線程同時訪問同一個Vector對象時,Vector能夠正確協調訪問,以避免數據損壞。
二、創建Vector對象
可以使用以下方式來創建一個Vector對象:
Vector<String> vector1 = new Vector<>(); Vector<Integer> vector2 = new Vector<>(10); Vector<Double> vector3 = new Vector<>(5, 2);
上面的代碼中,第一個Vector對象沒有指定初始容量,第二個Vector對象具有初始容量10,而第三個Vector對象具有初始容量5,以及每次增加2個元素的增量。
三、添加元素
可以使用以下方法來向Vector中添加元素:
Vector<Integer> vector = new Vector<>(); vector.add(1); vector.add(2); vector.add(3); vector.add(4); vector.add(5);
上面的代碼將添加整數1到5到vector中。由於Vector可以自動調整大小,因此不需要擔心添加太多元素。可以使用addAll()方法添加多個元素:
Vector<String> vector1 = new Vector<>(); vector1.add("s1"); vector1.add("s2"); Vector<String> vector2 = new Vector<>(); vector2.add("s3"); vector2.add("s4"); vector1.addAll(vector2);
在上面的代碼段中,vector1現在具有4個String元素:s1,s2,s3和s4。
四、獲取元素
可以使用以下方式來獲取Vector中的元素:
Vector<String> vector = new Vector<>(); vector.add("s1"); vector.add("s2"); vector.add("s3"); vector.add("s4"); String str1 = vector.get(0); String str2 = vector.elementAt(1);
上面的代碼中,str1將獲取索引0處的String元素,而str2將獲取索引1處的String元素。區別在於get()方法返回一個Object對象,而elementAt()方法返回一個指定索引的元素。
五、刪除元素
可以使用以下方式來從Vector中刪除元素:
Vector<String> vector = new Vector<>(); vector.add("s1"); vector.add("s2"); vector.add("s3"); vector.add("s4"); vector.remove(1); vector.remove("s4"); vector.removeAll(vector);
上面的代碼中,第一個remove()方法將刪除索引1處的元素,第二個remove()方法將刪除包含字符串”s4″的元素,而最後一個removeAll()方法將從vector中刪除所有元素。
六、遍歷Vector
可以使用以下方法來遍歷Vector:
Vector<String> vector = new Vector<>(); vector.add("s1"); vector.add("s2"); vector.add("s3"); vector.add("s4"); for (String str : vector) { System.out.println(str); }
上面的代碼將打印出vector中的所有String元素。還可以使用迭代器來遍歷Vector:
Vector<String> vector = new Vector<>(); vector.add("s1"); vector.add("s2"); vector.add("s3"); vector.add("s4"); Iterator<String> iterator = vector.iterator(); while (iterator.hasNext()) { String str = iterator.next(); System.out.println(str); }
七、與ArrayList的比較
與ArrayList相比,Vector有以下幾個區別:
1、Vector是線程安全的,而ArrayList不是。
2、每次向Vector添加元素時,如果Vector沒有足夠的空間,Vector的大小將自動增加。但是,在ArrayList中,當ArrayList沒有足夠的空間時,它必須重新分配內存塊,並將元素從舊塊複製到新塊中。
使用Vector的一個缺點是效率較低,因為Vector必須在每個操作上保證同步。
參考資料
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/194693.html