Vector (了解)
Posted lxy522
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vector (了解)相关的知识,希望对你有一定的参考价值。
(了解)
-
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, SerializableVector
类实现了可扩展的对象数组。像数组一样,它包含可以使用整数索引访问的组件。但是,Vector
的大小可以根据需要增长或缩小,以适应在创建Vector
之后添加和删除项目。每个向量尝试通过维护
capacity
和capacityIncrement
优化存储capacityIncrement
。capacity
总是至少与矢量大小一样大; 通常较大,因为当向量中添加组分时,向量的存储空间大小capacityIncrement
。 应用程序可以在插入大量组件之前增加向量的容量; 这减少了增量重新分配的数量。The iterators returned by this class‘s个
iterator
和listIterator
方法是快速失败的 :如果向量在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身remove
种或add
方法,迭代器都将抛出一个ConcurrentModificationException
。 因此,面对并发修改,迭代器将快速而干净地失败,而不是在未来未确定的时间冒着任意的非确定性行为。 由elements
返回的Enumerations
不是故障快速的。请注意,迭代器的故障快速行为无法保证,因为一般来说,在不同步并发修改的情况下,无法做出任何硬性保证。 失败快速迭代器尽力投入
ConcurrentModificationException
。 因此,编写依赖于此异常的程序的正确性将是错误的:迭代器的故障快速行为应仅用于检测错误。从Java 2平台v1.2,这个类被改造为实现
List
接口,使其成为成员Java Collections Framework 。 与新集合实现不同,Vector
是同步的。 如果不需要线程安全的实现,建议使用ArrayList
代替Vector
。
-
-
boolean
add(E e)
将指定的元素追加到此Vector的末尾。void
add(int index, E element)
在此Vector中的指定位置插入指定的元素。boolean
addAll(Collection c)
将指定集合中的所有元素追加到该向量的末尾,按照它们由指定集合的迭代器返回的顺序。boolean
addAll(int index, Collection c)
将指定集合中的所有元素插入到此向量中的指定位置。void
addElement(E obj)
将指定的组件添加到此向量的末尾,将其大小增加1。int
capacity()
返回此向量的当前容量。void
clear()
从此Vector中删除所有元素。Object
clone()
返回此向量的克隆。boolean
contains(Object o)
如果此向量包含指定的元素,则返回true
。boolean
containsAll(Collection c)
如果此向量包含指定集合中的所有元素,则返回true。void
copyInto(Object[] anArray)
将此向量的组件复制到指定的数组中。E
elementAt(int index)
返回指定索引处的组件。Enumeration
elements()
返回此向量的组件的枚举。void
ensureCapacity(int minCapacity)
如果需要,增加此向量的容量,以确保它可以至少保存最小容量参数指定的组件数。boolean
equals(Object o)
将指定的对象与此向量进行比较以获得相等性。E
firstElement()
返回此向量的第一个组件(索引号为0
的项目)。void
forEach(Consumer action)
对Iterable
的每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。E
get(int index)
返回此向量中指定位置的元素。int
hashCode()
返回此Vector的哈希码值。int
indexOf(Object o)
返回此向量中指定元素的第一次出现的索引,如果此向量不包含元素,则返回-1。int
indexOf(Object o, int index)
返回此向量中指定元素的第一次出现的索引,从index
向前index
,如果未找到该元素,则返回-1。void
insertElementAt(E obj, int index)
在指定的index插入指定对象作为该向量中的一个index
。boolean
isEmpty()
测试此矢量是否没有组件。Iterator
iterator()
以正确的顺序返回该列表中的元素的迭代器。E
lastElement()
返回向量的最后一个组件。int
lastIndexOf(Object o)
返回此向量中指定元素的最后一次出现的索引,如果此向量不包含元素,则返回-1。int
lastIndexOf(Object o, int index)
返回此向量中指定元素的最后一次出现的索引,从index
,如果未找到元素,则返回-1。ListIterator
listIterator()
返回列表中的列表迭代器(按适当的顺序)。ListIterator
listIterator(int index)
从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。E
remove(int index)
删除此向量中指定位置的元素。boolean
remove(Object o)
删除此向量中指定元素的第一个出现如果Vector不包含元素,则它不会更改。boolean
removeAll(Collection c)
从此Vector中删除指定集合中包含的所有元素。void
removeAllElements()
从该向量中删除所有组件,并将其大小设置为零。boolean
removeElement(Object obj)
从此向量中删除参数的第一个(最低索引)出现次数。void
removeElementAt(int index)
删除指定索引处的组件。boolean
removeIf(Predicate filter)
删除满足给定谓词的此集合的所有元素。protected void
removeRange(int fromIndex, int toIndex)
从此列表中删除所有索引为fromIndex
(含)和toIndex
之间的元素。void
replaceAll(UnaryOperator operator)
将该列表的每个元素替换为将该运算符应用于该元素的结果。boolean
retainAll(Collection c)
仅保留此向量中包含在指定集合中的元素。E
set(int index, E element)
用指定的元素替换此Vector中指定位置的元素。void
setElementAt(E obj, int index)
设置在指定的组件index
此向量的要指定的对象。void
setSize(int newSize)
设置此向量的大小。int
size()
返回此向量中的组件数。void
sort(Comparator c)
使用提供的Comparator
对此列表进行排序以比较元素。Spliterator
spliterator()
在此列表中的元素上创建late-binding和故障切换Spliterator
。List
subList(int fromIndex, int toIndex)
返回此列表之间的fromIndex(包括)和toIndex之间的独占视图。Object[]
toArray()
以正确的顺序返回一个包含此Vector中所有元素的数组。T[]
toArray(T[] a)
以正确的顺序返回一个包含此Vector中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。String
toString()
返回此Vector的字符串表示形式,其中包含每个元素的String表示形式。void
trimToSize()
-
以上是关于Vector (了解)的主要内容,如果未能解决你的问题,请参考以下文章
vc++ 运行中新建Label (了解vector的也请进)
为什么std :: foreach不能用于std :: vector ? [重复]