public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
Vector
类实现了一个可增长对象数组。像一个数组,它包含可以使用整数索引进行访问的组件。然而,一个
Vector
大小可以成长或需要适应添加和删除的项目后,
Vector
已创建收缩。
每个向量都试图保持一个capacity
和capacityIncrement
优化仓储管理,capacity
总是至少为载体的尺寸一样大;它通常是更大的因为组件添加到载体中,在大块的capacityIncrement
大小的向量的存储增加。应用程序可以将大量的组件之前增加一个矢量的能力;这将减少增量分配量。
The iterators returned by this class's iterator
和listIterator
方法快速失败:如果向量进行结构修饰后的迭代器创建的任何时间,以任何方式除了通过迭代器的remove
或add
方法,迭代器将抛出一个ConcurrentModificationException
。因此,在遇到同步修改,迭代器不能快速、干净,而不是冒着任意,非在将来一个不确定的时间确定的行为。的Enumerations
返回的elements
方法不能快速失败。
注意迭代器不能快速失败行为得到保证的话,一般来说,不可能在不同步的并发修改的存在作出难以保证。快速失败迭代器扔ConcurrentModificationException
尽最大努力的基础上。因此,要写一个程序,依靠这一例外的正确性错误:快速失败迭代器的行为只能用来检测错误。
作为java 2平台V1.2,这类改造实施List
接口,使得它的 Java Collections Framework成员。不像新采集的实现,Vector
是同步的。如果一个线程安全的实现是不需要的,建议在地方Vector
使用ArrayList
。
Collection
,
LinkedList
,
Serialized Form
Modifier and Type | Field and Description |
---|---|
protected int |
capacityIncrement
量由该载体的容量自动递增时,其大小是大于它的能力。
|
protected int |
elementCount
在这
Vector 对象的有效成分的数量。
|
protected Object[] |
elementData
存储向量的组件的数组缓冲区。
|
modCount
Constructor and Description |
---|
Vector()
构造一个空向量,使其内部数据数组的大小
10 及其标准容量增量为零。
|
Vector(Collection<? extends E> c)
构造一个包含指定集合元素的向量,它们在集合的迭代器返回的顺序中返回。
|
Vector(int initialCapacity)
用指定的初始容量构造一个空向量,并以其容量增量等于零。
|
Vector(int initialCapacity, int capacityIncrement)
用指定的初始容量和容量增量构造一个空向量。
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(E e)
将指定的元素,这个矢量的末端。
|
void |
add(int index, E element)
在该向量的指定位置上插入指定的元素。
|
boolean |
addAll(Collection<? extends E> c)
追加指定集合的所有元素的vector中结束,以便他们按指定集合的迭代器返回。
|
boolean |
addAll(int index, Collection<? extends E> c)
将指定集合中的所有元素插入到指定位置的该向量中。
|
void |
addElement(E obj)
添加指定的组件到这个向量的结束,增加其大小由一个。
|
int |
capacity()
返回此向量的当前容量。
|
void |
clear()
从这个向量中移除所有的元素。
|
Object |
clone()
返回此向量的克隆。
|
boolean |
contains(Object o)
返回
true 如果这个向量包含指定的元素。
|
boolean |
containsAll(Collection<?> c)
如果此向量包含指定集合中的所有元素,则返回真。
|
void |
copyInto(Object[] anArray)
将此向量的组件复制到指定的数组中。
|
E |
elementAt(int index)
返回指定索引处的组件。
|
Enumeration<E> |
elements()
返回此向量的组件的枚举。
|
void |
ensureCapacity(int minCapacity)
增加此向量的容量,如果必要的话,以确保它至少可以容纳由最小容量参数指定的组件数。
|
boolean |
equals(Object o)
将指定的对象与此向量进行比较,以进行相等性。
|
E |
firstElement()
返回第一个组件(在指数
0 项目)这个载体。
|
void |
forEach(Consumer<? super E> action)
执行特定动作的每一个元素的
Iterable 直到所有元素都被处理或操作抛出异常。
|
E |
get(int index)
返回此向量中指定位置的元素。
|
int |
hashCode()
返回此向量的哈希代码值。
|
int |
indexOf(Object o)
返回该向量中指定元素的第一个出现的索引,或-如果此向量不包含元素,或- 1。
|
int |
indexOf(Object o, int index)
返回这个向量中第一个出现的指定元素的索引,搜索了从
index ,或返回1如果元素没有被发现。
|
void |
insertElementAt(E obj, int index)
将指定的对象在指定的
index vector的成员。
|
boolean |
isEmpty()
测试这个向量是否没有组件。
|
Iterator<E> |
iterator()
在这个列表中的元素上返回一个正确的顺序。
|
E |
lastElement()
返回向量的最后一个组件。
|
int |
lastIndexOf(Object o)
返回该向量中指定元素的最后一个发生的索引,或-如果此向量不包含元素,或- 1。
|
int |
lastIndexOf(Object o, int index)
返回这个向量中指定元素的最后一个匹配项的索引,搜索
index 往后,或返回1如果元素没有被发现。
|
ListIterator<E> |
listIterator()
返回列表元素的列表迭代器(在适当的顺序)。
|
ListIterator<E> |
listIterator(int index)
在列表中的元素上返回列表迭代器(在适当的顺序),从列表中的指定位置开始。
|
E |
remove(int index)
移除此向量中指定位置的元素。
|
boolean |
remove(Object o)
如果向量不包含元素,则移除该向量中指定元素的第一个情况,它是不变的。
|
boolean |
removeAll(Collection<?> c)
从这个向量中移除包含在指定集合中的所有元素。
|
void |
removeAllElements()
从该向量中移除所有组件,并将其大小设置为零。
|
boolean |
removeElement(Object obj)
从该向量中移除第一个(最低索引)发生的参数。
|
void |
removeElementAt(int index)
在指定的索引中删除组件。
|
boolean |
removeIf(Predicate<? super E> filter)
删除满足给定谓词的这个集合的所有元素。
|
protected void |
removeRange(int fromIndex, int toIndex)
从列表中删除所有的元素的索引
fromIndex 之间,包容性,和
toIndex ,独家。
|
void |
replaceAll(UnaryOperator<E> operator)
用将运算符应用到该元素的结果替换此列表中的每个元素。
|
boolean |
retainAll(Collection<?> c)
仅保留包含在指定集合中的此向量中的元素。
|
E |
set(int index, E element)
用指定元素替换此向量中指定位置的元素。
|
void |
setElementAt(E obj, int index)
设置组件在指定的
index 这个向量是指定的对象。
|
void |
setSize(int newSize)
设置此向量的大小。
|
int |
size()
返回此向量中的组件的数目。
|
void |
sort(Comparator<? super E> c)
分类列表使用提供的
Comparator 比较元素。
|
Spliterator<E> |
spliterator()
创建一个后期绑定和快速失败
Spliterator 超过此列表中的元素。
|
List<E> |
subList(int fromIndex, int toIndex)
返回一个视图之间的位置,这个清单部分包容,和指数,独家。
|
Object[] |
toArray()
返回包含此向量中的所有元素的数组,以正确的顺序。
|
<T> T[] |
toArray(T[] a)
返回包含此向量中的所有元素的数组,以正确的顺序;返回的数组的运行时类型是指定的数组的运行时类型。
|
String |
toString()
返回此向量的字符串表示形式,包含每个元素的字符串表示形式。
|
void |
trimToSize()
装饰这个向量是向量的电流容量。
|
finalize, getClass, notify, notifyAll, wait, wait, wait
parallelStream, stream
protected Object[] elementData
在向量中的最后一个元素后的任何数组元素都是空的。
protected int elementCount
Vector
对象的有效成分的数量。成分
elementData[0]
通过
elementData[elementCount-1]
是实际的项目。
protected int capacityIncrement
public Vector(int initialCapacity, int capacityIncrement)
initialCapacity
-向量的初始容量
capacityIncrement
-量容量增加当载体溢出
IllegalArgumentException
-如果指定的初始容量为负
public Vector(int initialCapacity)
initialCapacity
-向量的初始容量
IllegalArgumentException
-如果指定的初始容量为负
public Vector()
10
及其标准容量增量为零。
public Vector(Collection<? extends E> c)
c
的元素都被放置到这个向量的集合
NullPointerException
-如果指定集合为空
public void copyInto(Object[] anArray)
k
项目复制到
anArray
组件
k
。
anArray
-阵列的组件被复制
NullPointerException
-如果指定数组是空的
IndexOutOfBoundsException
-如果指定的数组不足以容纳这个向量的所有组件
ArrayStoreException
-如果这个分量不是一个运行时类型可以存储在指定的数组
toArray(Object[])
public void trimToSize()
elementData
,与一个较小的一个。一个应用程序可以使用此操作,以尽量减少存储的向量。
public void ensureCapacity(int minCapacity)
如果这个向量的电流容量小于minCapacity
,那么它的容量增加了更换其内部数据数组,存放在现场elementData
,具有较大的。新数据的数组的大小,将旧的大小加上capacityIncrement
,除非capacityIncrement
值小于或等于零,在新的能力将两老能力的情况;但如果这个新的规模仍小于minCapacity
,那么新的能力将minCapacity
。
minCapacity
-所需的最小容量
public void setSize(int newSize)
null
项目添加到vector的末尾。如果新的大小小于当前大小,所有的组件在指数
newSize
大被丢弃。
newSize
-这个向量的新尺寸
ArrayIndexOutOfBoundsException
-如果新的大小负
public int capacity()
elementData
)
public int size()
size
接口
Collection<E>
size
接口
List<E>
size
方法重写,继承类
AbstractCollection<E>
public boolean isEmpty()
isEmpty
接口
Collection<E>
isEmpty
接口
List<E>
isEmpty
方法重写,继承类
AbstractCollection<E>
true
如果vector不成分,即它的大小为零;
false
否则。
public Enumeration<E> elements()
Enumeration
对象会产生在这个向量的所有项目。第一项在索引
0
生成项目,然后在指数
1
项目,等等。
Iterator
public boolean contains(Object o)
true
如果这个向量包含指定的元素。更正式地说,返回
true
当且仅当该载体包含至少一个元素
e
这样
(o==null ? e==null : o.equals(e))。
contains
接口
Collection<E>
contains
接口
List<E>
contains
方法重写,继承类
AbstractCollection<E>
o
-这个载体存在的元素进行测试
true
如果这个向量包含指定的元素
public int indexOf(Object o)
i
指数最低,
(o==null ? get(i)==null : o.equals(get(i))),或1,如果没有这样的指标。
public int indexOf(Object o, int index)
index
,或返回1如果元素没有被发现。更正式地说,返回
i
指数最低,
(i >= index && (o==null ? get(i)==null : o.equals(get(i)))),或1,如果没有这样的指标。
o
元搜索
index
指数开始搜索
index
或矢量以后在这个矢量的指数;
-1
如果元素没有被发现。
IndexOutOfBoundsException
-如果指定的指数是负的
Object.equals(Object)
public int lastIndexOf(Object o)
i
这样
(o==null ? get(i)==null : o.equals(get(i))),或1,如果没有这样的指标。
lastIndexOf
接口
List<E>
lastIndexOf
方法重写,继承类
AbstractList<E>
o
元搜索
public int lastIndexOf(Object o, int index)
index
往后,或返回1如果元素没有被发现。更正式地说,返回最高指数
i
这样
(i <= index && (o==null ? get(i)==null : o.equals(get(i)))),或1,如果没有这样的指标。
o
元搜索
index
指数开始向后搜索从
index
这个向量中的元素最后一次出现的指标;1如果元素没有被发现。
IndexOutOfBoundsException
-如果指定的索引大于或等于当前Vector
public E elementAt(int index)
index
进入这个向量索引
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index >= size()
)
public E firstElement()
0
项目)这个载体。
NoSuchElementException
如果vector没有组件
public E lastElement()
size() - 1
组件。
NoSuchElementException
-如果这个向量是空的
public void setElementAt(E obj, int index)
index
这个向量是指定的对象。该位置上的前一个组件将被丢弃。
该指数的值必须大于或等于和小于0
矢量电流大小。
这种方法是相同的功能的set(int, E)
方法(是的List
接口部分)。请注意,set
方法反转参数的顺序,以更紧密地匹配的数组的使用。还要注意的是,set
方法返回旧值被存储在指定的位置。
obj
什么组件被设置为
index
-指定索引
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index >= size()
)
public void removeElementAt(int index)
index
指数在这个向量的每个分量下移有一个指标一个比它以前的价值。这个向量的大小减少
1
。
该指数的值必须大于或等于和小于0
矢量电流大小。
这种方法是相同的功能的remove(int)
方法(是的List
接口部分)。请注意,remove
方法返回旧值被存储在指定的位置。
index
-对象删除索引
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index >= size()
)
public void insertElementAt(E obj, int index)
index
vector的成员。用大于或等于指定的
index
指数在这个向量的每个分量的向上移动,有一个指数大于先前的价值。
该指数的值必须大于或等于0
和小于或等于矢量电流大小。(如果该索引与矢量的当前大小相等,则新的元素被添加到向量。)
这种方法是相同的功能的add(int, E)
方法(是的List
接口部分)。请注意,add
方法反转参数的顺序,以更紧密地匹配的数组的使用。
obj
-插入元件
index
-如何插入新的组件
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index > size()
)
public void addElement(E obj)
obj
-要添加的组件
public boolean removeElement(Object obj)
这种方法是相同的功能的remove(Object)
方法(是的List
接口部分)。
obj
-要移除的组件
true
如果参数是这个向量的分量;
false
否则。
public void removeAllElements()
public Object clone()
Vector
原始物体内部数据数组。
public Object[] toArray()
toArray
接口
Collection<E>
toArray
接口
List<E>
toArray
方法重写,继承类
AbstractCollection<E>
Arrays.asList(Object[])
public <T> T[] toArray(T[] a)
如果向量适合在指定的数组与空间的空闲(即,数组有更多的元素比向量),在数组中的元素立即结束后的向量被设置为空。(这是有用的,在确定的向量的长度,只有当来电者知道,向量不包含任何空元素。)
toArray
接口
Collection<E>
toArray
接口
List<E>
toArray
方法重写,继承类
AbstractCollection<E>
T
-数组的运行时类型包含集合
a
-为向量的元素保存到数组,如果它足够大;否则,一个新的运行时类型相同的数组分配给这个目的。
ArrayStoreException
-如果一个运行时类型不是一个类型的vector中每个元素运行时类型
NullPointerException
-如果指定数组是空的
public E get(int index)
get
接口
List<E>
get
方法重写,继承类
AbstractList<E>
index
索引元素的回归
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index >= size()
)
public E set(int index, E element)
set
接口
List<E>
set
方法重写,继承类
AbstractList<E>
index
索引的元素代替
element
元素被存储在指定的位置
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index >= size()
)
public boolean add(E e)
add
接口
Collection<E>
add
接口
List<E>
add
方法重写,继承类
AbstractList<E>
e
元被附加到这个向量
true
(由
Collection.add(E)
指定)
public boolean remove(Object o)
(o==null ? get(i)==null : o.equals(get(i)))
元素存在)。
remove
接口
Collection<E>
remove
接口
List<E>
remove
方法重写,继承类
AbstractCollection<E>
o
元是从这个载体的删除,如果存在
public void add(int index, E element)
add
接口
List<E>
add
方法重写,继承类
AbstractList<E>
index
指数在指定的元素被插入
element
元素被插入
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index > size()
)
public E remove(int index)
remove
接口
List<E>
remove
方法重写,继承类
AbstractList<E>
index
-要被删除的元素的索引
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index >= size()
)
public void clear()
clear
接口
Collection<E>
clear
接口
List<E>
clear
方法重写,继承类
AbstractList<E>
public boolean containsAll(Collection<?> c)
containsAll
接口
Collection<E>
containsAll
接口
List<E>
containsAll
方法重写,继承类
AbstractCollection<E>
c
-一个集合的元素将被测试在这个矢量控制
NullPointerException
-如果指定集合为空
AbstractCollection.contains(Object)
public boolean addAll(Collection<? extends E> c)
addAll
接口
Collection<E>
addAll
接口
List<E>
addAll
方法重写,继承类
AbstractCollection<E>
c
元素被插入该载体
true
如果调用的结果向量改变
NullPointerException
-如果指定集合为空
AbstractCollection.add(Object)
public boolean removeAll(Collection<?> c)
removeAll
接口
Collection<E>
removeAll
接口
List<E>
removeAll
方法重写,继承类
AbstractCollection<E>
c
-元素集合可以从向量中除去
ClassCastException
如果vector中一个或多个元素的类型与指定集合不相容(
optional)
NullPointerException
-如果该载体包含一个或多个null元素而指定集合不支持null元素(
optional),或者指定集合为空
AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public boolean retainAll(Collection<?> c)
retainAll
接口
Collection<E>
retainAll
接口
List<E>
retainAll
方法重写,继承类
AbstractCollection<E>
c
-元素集合中要保留的载体(所有其他的元素被删除)
ClassCastException
如果vector中一个或多个元素的类型与指定集合不相容(
optional)
NullPointerException
-如果该载体包含一个或多个null元素而指定集合不支持null元素(
optional),或者指定集合为空
AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public boolean addAll(int index, Collection<? extends E> c)
addAll
接口
List<E>
addAll
方法重写,继承类
AbstractList<E>
index
指数,从指定集合的第一个元素的插入
c
元素被插入该载体
true
如果调用的结果向量改变
ArrayIndexOutOfBoundsException
如果索引超出范围(
index < 0 || index > size()
)
NullPointerException
-如果指定集合为空
public boolean equals(Object o)
(e1==null ? e2==null : e1.equals(e2))
。两元素
e1
和
e2
相等)换句话说,两个列表的定义就包含在同一顺序相同的元素。
equals
接口
Collection<E>
equals
接口
List<E>
equals
方法重写,继承类
AbstractList<E>
o
要比较这个向量相等的对象
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
接口
Collection<E>
hashCode
接口
List<E>
hashCode
方法重写,继承类
AbstractList<E>
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
toString
方法重写,继承类
AbstractCollection<E>
public List<E> subList(int fromIndex, int toIndex)
此方法消除了对显式范围操作(通常用于数组的排序)的需要。任何希望将列表作为一个范围操作的操作子列表视图而不是整个列表。例如,下面的成语从列表中移除了一系列元素:
列表。列表(从,到clear());相似的习语可以构建指标和字符串,和集合中的所有类的算法可以应用到列表。
列表的语义,该方法返回的是如果支持列表(即,这个列表)是通过返回的列表结构改性以外的其他任何方式。(结构上的修改是指改变列表、大小或其他方式,迭代的进展可能会产生不正确的结果。)
subList
接口
List<E>
subList
方法重写,继承类
AbstractList<E>
fromIndex
低端点(含)的子列表
toIndex
高端点(独家)的子列表
IndexOutOfBoundsException
-如果一个端点索引值超出范围
(fromIndex < 0 || toIndex > size)
IllegalArgumentException
如果终点指标是为了
(fromIndex > toIndex)
protected void removeRange(int fromIndex, int toIndex)
fromIndex
之间,包容性,和
toIndex
,独家。将任何成功的元素转移到左边(降低它们的索引)。这叫缩短列表
(toIndex - fromIndex)
元素。(如果
toIndex==fromIndex
,此操作没有影响。)
removeRange
方法重写,继承类
AbstractList<E>
fromIndex
-第一个元素被删除索引
toIndex
-要删除的最后一个元素后的指标
public ListIterator<E> listIterator(int index)
next
初始调用返回,
previous
初始调用将返回与指定的指数减一元。
返回的列表迭代器是fail-fast。
listIterator
接口
List<E>
listIterator
方法重写,继承类
AbstractList<E>
index
索引的第一个元素是列表迭代器返回(通过调用
next
)
IndexOutOfBoundsException
如果索引超出范围(
index < 0 || index > size()
)
public ListIterator<E> listIterator()
返回的列表迭代器是fail-fast。
listIterator
接口
List<E>
listIterator
方法重写,继承类
AbstractList<E>
listIterator(int)
public void forEach(Consumer<? super E> action)
Iterable
Iterable
直到所有元素都被处理或操作抛出异常。除非实现类的其他指定,否则操作在迭代的顺序中(如果指定了一个迭代顺序)。由操作引发的异常被传递给调用方。
public boolean removeIf(Predicate<? super E> filter)
Collection
removeIf
接口
Collection<E>
filter
-谓词返回的元素被删除
true
true
如果任何被删除元素
public void replaceAll(UnaryOperator<E> operator)
List
replaceAll
接口
List<E>
operator
-操作适用于每一个元素
public void sort(Comparator<? super E> c)
List
Comparator
比较元素。
sort
接口
List<E>
c
用来比较列表元素的
Comparator
。一个
null
值表示元素的
natural ordering应使用
public Spliterator<E> spliterator()
Spliterator
超过此列表中的元素。
报告的Spliterator
Spliterator.SIZED
,Spliterator.SUBSIZED
,和Spliterator.ORDERED
。重写实现应记录附加特征值的报告。
spliterator
接口
Iterable<E>
spliterator
接口
Collection<E>
spliterator
接口
List<E>
Spliterator
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.