Java集合源码分析(八)-Vector(下)

151 阅读5分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战

总结

  • 构造器
    • public Vector(int initialCapacity, int capacityIncrement):通过指定初始化容量和容量增长构建一个空的 Vector
    • public Vector(int initialCapacity):通过指定初始化容量和 0 容量增长构建一个空的 Vector
    • public Vector():构造一个空的 Vector,它的内部数据数组大小为 10,它标准容量增加是 0
    • public Vector(Collection<? extends E> c):构造一个 Vector 包含指定集合的元素,按照集合的迭代器返回的顺序
  • public synchronized void copyInto(Object[] anArray):复制这个 Vector 的部分到指定的集合
  • public synchronized void trimToSize():修剪这个 Vector 的容量成为 Vector 的当前大小
  • public synchronized void ensureCapacity(int minCapacity):增加这个 Vector 的容量,如果必要的话,确认它至少可以容纳最小容量参数指定的组件数量
  • public synchronized void setSize(int newSize) :设置这个 Vector 的大小
  • public synchronized int capacity():返回这个 Vector 当前容量
  • public synchronized int size():返回这个 Vector 组件的数量
  • public synchronized boolean isEmpty():测试这个 Vector 是否没有组件
  • public Enumeration<E> elements():返回这个 Vector 组件的枚举
  • public boolean contains(Object o):如果这个 Vector 包含指定元素,返回 true
  • public int indexOf(Object o):返回指定元素在这个 Vector 第一次出现索引,如果这个 Vector 没有包含这个元素,则为 -1
  • public synchronized int indexOf(Object o, int index):返回指定元素在这个 Vector 第一次出现的索引,使用 index 向前搜索,如果这个元素没有找到,则为 -1
  • public synchronized int lastIndexOf(Object o):返回指定元素在这个 Vector 最后一次出现的索引,如果这个 Vector 没有包含这个元素,则为 -1
  • public synchronized int lastIndexOf(Object o, int index):返回指定元素在这个 Vector 最后一次出现的索引,从 index 向后搜索,如果这个元素没有找到,则为 -1
  • public synchronized E elementAt(int index):返回指定索引的组件
  • public synchronized E firstElement():返回这个 Vector 的第一个组件(索引 0 的项)
  • public synchronized E lastElement():返回 Vector 最后的组件
  • public synchronized void setElementAt(E obj, int index):将这个 Vector 的指定 index 的组件设置为指定对象
  • public synchronized void removeElementAt(int index):删除指定索引的组件
  • public synchronized void insertElementAt(E obj, int index):在这个 Vector 指定 index 插入指定对象作为组件
  • public synchronized void addElement(E obj):添加指定组件到这个 Vector 的结尾,将它的大小增加一
  • public synchronized boolean removeElement(Object obj):从这个 Vector 移除参数第一个(最低索引)出现
  • public synchronized void removeAllElements():从这个 Vector 移除全部组件,并且设置它的大小为 0|
  • public synchronized Object clone():返回这个 Vector 的克隆对象
  • public synchronized Object[] toArray():返回按正确顺序包含这个 Vector 的全部元素的数组
  • public synchronized <T> T[] toArray(T[] a):返回按正确顺序包含这个 Vector 元素的数组
  • 位置访问操作
    • E elementData(int index)
    • public synchronized E get(int index):返回这个 Vector 指定位置的元素
    • public synchronized E set(int index, E element):使用指定元素代替这个 Vector 指定位置元素
    • public synchronized boolean add(E e):追加指定元素到这个 Vector 的末尾
    • public boolean remove(Object o):移除指定元素在这个 Vector 的第一次出现
    • public void add(int index, E element):插入指定元素到这个 Vector 的指定位置
    • public synchronized E remove(int index):移除这个 Vector 指定位置的元素
    • public void clear():从这个 Vector 移除全部元素
  • 批量操作
    • public synchronized boolean containsAll(Collection<?> c):返回 true,如果这个 Vector 包含指定集合的全部元素
    • public synchronized boolean addAll(Collection<? extends E> c):追加指定集合的全部元素到这个 Vector 的末尾,按照指定集合的迭代器返回的顺序
    • public synchronized boolean removeAll(Collection<?> c):从这个 Vector 移除移除指定集合包含的所有元素
    • public synchronized boolean retainAll(Collection<?> c):只保留这个 Vector 包含指定集合的元素
    • public synchronized boolean addAll(int index, Collection<? extends E> c):插入指定集合的所有元素到这个 Vector 指定的位置
    • public synchronized boolean equals(Object o):比较指定对象和这个 Vector 是否相等
    • public synchronized int hashCode():返回这个 Vector 的哈希码值
    • public synchronized String toString():返回这个 Vector 的字符串表示形式,包含每个元素的字符串表示形式
    • public synchronized List<E> subList(int fromIndex, int toIndex):返回这个列表指定从 fromIndex(包括) 到 toIndex(不包括)区域之间部分的视图(如果 fromIndex 和 toIndex 相等,返回的列表是空)
    • protected synchronized void removeRange(int fromIndex, int toIndex):从这个列表移除所有索引在 fromIndex(包括)和 toIndex(不包括) 元素
    • private void readObject(ObjectInputStream in):从流中加载 Vector 实例(也就是说,反序列化它)
    • private void writeObject(java.io.ObjectOutputStream s):保存 Vector 实例的状态到流中(也就是说,序列化它)
    • public synchronized ListIterator<E> listIterator(int index):返回这个列表的元素的列表迭代器(按照正确顺序),在这个列表的指定位置开始
    • public synchronized ListIterator<E> listIterator():返回这个列表的元素的列表迭代器(按正确的顺序)
    • public synchronized Iterator<E> iterator():返回按正确的顺序遍历这个列表的元素的迭代器
    • public synchronized void forEach(Consumer<? super E> action)
    • public synchronized boolean removeIf(Predicate<? super E> filter)
    • public synchronized void replaceAll(UnaryOperator<E> operator)
    • public synchronized void sort(Comparator<? super E> c)
    • public Spliterator<E> spliterator():在这个列表的元素上创建一个延迟绑定和快速失败的分离器
  • VectorSpliterator:类似 ArrayList 分离器
    • VectorSpliterator(Vector<E> list, Object[] array, int origin, int fence,int expectedModCount):创建一个覆盖给定范围的新分离器
    • private int getFence():首次使用初始化
    • public Spliterator<E> trySplit():尝试分离
    • public boolean tryAdvance(Consumer<? super E> action):尝试进步
    • public void forEachRemaining(Consumer<? super E> action):预言
  • Itr:AbstractList.Itr的优化版本
    • public boolean hasNext():是否含有下一个元素
    • public E next():返回下一个元素
    • public void remove():移除
    • public void forEachRemaining(Consumer<? super E> action):预言
    • final void checkForComodification():检查共修改
  • ListItr:AbstractList.ListItr 的优化版本
    • ListItr(int index):构造器
    • public boolean hasPrevious():是否有上一个元素
    • public int nextIndex():下一个索引
    • public int previousIndex():前一个索引
    • public E previous():前一个元素
    • public void set(E e):设置元素
    • public void add(E e):添加元素

注意事项

  • capacity 和 size 是不同的,capacity 是容量,size 是大小