前端面試題 及 答案
阿新 • • 發佈:2021-01-13
Vector
基本屬性
/**
* 儲存vector的快取區。vector的容量是是個快取區(陣列)的長度
*/
protected Object[] elementData;
/**
* Vector 所包含實際元素的數量
*/
protected int elementCount;
/**
* vector自增量。
* 如果容量增量小於或等於零,則每次需要增長時,向量的容量都會翻倍。
*/
protected int capacityIncrement;
構造器
指定初始容量和自增量構造器
/**
* 指定初始容量和自增量
*
* @param initialCapacity 初始容量
* @param capacityIncrement 自增量
*/
public Vector(int initialCapacity, int capacityIncrement) {
//1.父類AbstractList的構造器
super();
//2.判斷引數合法性
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
//3.初始化一個指定容量的陣列,並賦值給elementData
this.elementData = new Object[initialCapacity];
//4.把傳入的自增量賦值給類成員變數capacityIncrement
this.capacityIncrement = capacityIncrement;
}
指定初始容量構造器
/**
* 指定初始容量
*/
public Vector(int initialCapacity) {
//呼叫指定初始容量和自增量構造器,把自增量設定為0
this(initialCapacity, 0);
}
無參構造器
/**
* 構造一個容量為10的列表
*/
public Vector() {
//呼叫指定初始容量構造器,指定初始值為10
this(10);
}
指定集合元素的列表的構造器
/**
* Constructs a vector containing the elements of the specified
* collection, in the order they are returned by the collection's
* iterator.
*
* @param c the collection whose elements are to be placed into this
* vector
* @throws NullPointerException if the specified collection is null
* @since 1.2
*/
public Vector(Collection<? extends E> c) {
Object[] a = c.toArray();
elementCount = a.length;
if (c.getClass() == ArrayList.class) {
elementData = a;
} else {
elementData = Arrays.copyOf(a, elementCount, Object[].class);
}
}
------------------------------------------------無敵分割線------------------------------------------------------
其他方法參考ArrayList…
vect = synchronized(ArrayList),簡單理解吧