1. 程式人生 > >java集合之Vector向量基礎

java集合之Vector向量基礎

end 元素 incr pri 設置 == protected ava 動態

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向量基礎