Vector (了解)

Posted lxy522

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vector (了解)相关的知识,希望对你有一定的参考价值。

Vector

(了解)

  • public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, Serializable

    Vector类实现了可扩展的对象数组。像数组一样,它包含可以使用整数索引访问的组件。但是, Vector的大小可以根据需要增长或缩小,以适应在创建Vector之后添加和删除项目。

    每个向量尝试通过维护capacitycapacityIncrement优化存储capacityIncrementcapacity总是至少与矢量大小一样大; 通常较大,因为当向量中添加组分时,向量的存储空间大小capacityIncrement 。 应用程序可以在插入大量组件之前增加向量的容量; 这减少了增量重新分配的数量。

    The iterators returned by this class‘s个 iteratorlistIterator方法是快速失败的 :如果向量在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身removeadd方法,迭代器都将抛出一个ConcurrentModificationException 。 因此,面对并发修改,迭代器将快速而干净地失败,而不是在未来未确定的时间冒着任意的非确定性行为。 由elements返回的Enumerations 不是故障快速的。

    请注意,迭代器的故障快速行为无法保证,因为一般来说,在不同步并发修改的情况下,无法做出任何硬性保证。 失败快速迭代器尽力投入ConcurrentModificationException 。 因此,编写依赖于此异常的程序的正确性将是错误的:迭代器的故障快速行为应仅用于检测错误。

    从Java 2平台v1.2,这个类被改造为实现List接口,使其成为成员Java Collections Framework 。 与新集合实现不同, Vector是同步的。 如果不需要线程安全的实现,建议使用ArrayList代替Vector

    • booleanadd(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 ? [重复]

LockSupport.java 中的 FIFO 互斥代码片段

了解 BitTorrent 片段输出

VS中添加自定义代码片段——偷懒小技巧