java集合之Vector向量基礎
Vector向量:
vector類似動態數組,向量和數組類似,但是數組容量一旦確定不可更改,而向量的容量可變。向量只可以保存任何類型對象且容量不限制,數組對元素類型無限制但是容量有限。
適用場合:向量適用頻繁增刪元素且元素數組不確定情況、元素都是對象、
數組適合對象數目確定、基礎數據類型的元素。
構造方法:
public Vector();
public Vector(int initialCapacity);指定初始容量,超過容量系統自動增加一倍
public Vector(int initialCapacity,int CapacityIncrement);指定初始容量和增長增量,CapacityIncrement為0是默認自動增加一倍(向量的自動增長多於所需內存空間的)
public Vector(Collection<? extends E> c);指定集合構造vector
屬性:
protected int capacityIncrement 向量的增量
protected int elementCount 向量的元素個數
protected Object elementData[] 向量成員的緩沖區
常用方法:
void addElement(Object obj);添加到尾部,容量增1
int capacity()返回向量容量
boolean contains(Object obj)判斷向量是否包含指定元素
void copyInfo(Object Array[])將向量復制到數組
synchronized Object elementAt(int index)返回指定位置元素,下標非法時拋出ArrayIndexOutOfBoundsException異常
void ensureCapacity(int size)設置向量最小容量為size
synchronized Object firstElement()返回第一個元素,向量為空時拋出NoSuchElementException異常
int indexOf(Object element)返回元素下標,不存在時返回-1
int indexOf(Object element,int start)指定位置開始搜索元素,返回下標值,不存在時返回-1
void insertElementAt(Object obj,int index)指定位置插入,此位置後的內容往後移動1
boolean isEmpty()判斷向量是否為空
synchronized Object lastElement()返回向量的最後一個元素,向量為空時拋出NoSuchElementException
int lastIndexOf(Object element)從向量尾開始搜索,返回元素下標
int lastIndexOf(Object element,int start)從指定位置開始向前搜索,返回元素下標
boolean removeElement(Object obj)刪除指定元素,若有多個只刪除第一個
void removeAllElements()刪除所有,容量變為0
void removeElementAt(int index)刪除指定位置元素
void setElementAt(Object obj,int index)替換指定位置內容
void setSize(int size)將向量長度設置為size,新長度小於原長度則元素丟失,大於原長度,則自動置為null
int size()返回向量中元素個數
String toString()向量轉換為字符串
示例:
package test;
import java.util.Arrays;
import java.util.*;
public class VectorTest {
public static void main(String[] args) {
Vector<String> vector = new Vector<String>();
vector.add("vector1");
vector.addElement("vector2");
vector.add("向量3");
vector.addElement("向量4");
vector.insertElementAt("向量5插入", 2);
System.out.println("1-向量:"+vector);
vector.setElementAt("向量替換1", 1);
System.out.println("2-向量:"+vector+vector.size());
System.out.println("3-向量:"+vector.lastElement());
System.out.println("4-向量:"+vector.lastIndexOf("vector1"));
//不存在元素vector2
if(vector.indexOf("vector2")==-1){
System.out.println("5-向量:"+vector.indexOf("vector2"));
}
System.out.println("6-向量:"+vector.contains("向量4"));
String[] arr= new String[5];
//向量復制到數組
vector.copyInto(arr);
System.out.println("7-數組打印:"+Arrays.toString(arr));
vector.removeAllElements();
System.out.println("8-向量:"+vector.isEmpty());
vector = new Vector<String>(Arrays.asList(arr));
System.out.println("9-向量:"+vector);
System.out.println("10-向量toString打印:"+vector.toString());
for(String vec : vector){
System.out.println(vec);
}
}
}
java集合之Vector向量基礎