嘀嘀嘀~~~  页面这在飞快的跑来 . . .

Vector


Vector

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

与List区别

Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同,vector为存储的对象分配一块连续的地址空间,因此对vector中的元素随机访问效率很高。在vecotor中插入或者删除某个元素,需要将现有元素进行复制,移动。对于简单的小对象,vector的效率优于list。vector在每次扩张容量的时候,将容量扩展2倍,这样对于小对象来说,效率是很高的。list中的对象是离散存储的,随机访问某个元素需要遍历list。在list中插入元素,尤其是在首尾插入元素,效率很高,只需要改变元素的指针。

  • Vector 是同步访问
  • Vector 包含了许多传统的方法,这些方法不属于集合框架
  • Verctor 适用于对象数量变化少,简单的对象并且随机访问元素频繁
  • List 适用于对象数量变化打,对象复杂并且插入和删除频繁
  • Vector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。

定义

public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable

构造方法

Verctor类支持四种构造方法

  1. Vector() 构造一个空间向量,使其内部数据数组的大小为10,标准容量增量为零
  2. Vector (Collection<? extends E> c) 构造一个包含指定集合元素的向量,按照集合的迭代器返回顺序
  3. Vector(int initialCapacity) 构造具有指定初始容量并且其容量增量等于零的空向量
  4. Vector(int initialCapacity,int capacityIncrement) 构造具有指定的初始容量和容量增量的空向量

方法

  • int capacity() 返回此向量的当前容量
  • int setSize(int newSize)设置此向量的大小
  • int size()返回此向量中的组件数
  • void sort(Comparator c )使用提供的Comparatory对此列表进行排序以比较元素
  • Spliterator spliterator() 在此列表中的元素上创建late-binding和故障切换Spliterator
  • Object clone() 返回此向量的克隆
  • void ensureCapacity(int minCapacity) 如果需要,增加此向量的容量,以确保他可以至少保存最小容量参数指定的组件数
  • Object[] toArry()以正确的顺序返回一个包含此Vector中所有元素的数组
  • String toString()返回此Vector的字符串表示形式,其中包含每个元素的String表示形式
  • void trimToSize()修改该向量的容量成为向量当前大小

  • boolean add(E e) 讲指定的元素追加到此Vector的末尾
  • void add(int index,E element) 在此Vector中的指定位置插入指定元素
  • boolean addAll(Collection <? extends E> c) 将指定集合中的所有元素追加到该向量的末尾,按照它们由指定集合的迭代器返回的顺序
  • boolean addAll(int index,Collection<? extends E> c) 将指定集合中的所有元素插入到此向量的指定位置
  • void addElement(E obj) 将指定的组件添加到此向量的末尾,将其大小增加1
  • void insertElementAt(E obj,int index)在指定的index插入指定对象作为该向量的一个index

  • void clear() 从此Vector中删除所有元素
  • E remove(int index) 删除此向量中指定位置的元素
  • boolean remove(Object o)删除此向量中指定元素的第一次出现如果Vector不包含元素,则它不会 更改
  • boolean removeAll(Collection<?> c)从此Vector中删除指定集合中包含的所有元素
  • void removeAllElements()从该向量中删除所有组件,并将其大小设置为零
  • boolean removeElement(Object obj)从此向量中删除参数的第一个(最低索引)出现次数
  • void removeElementt(int index)删除指定索引初的组件
  • boolean removeIf(Predicate<?super> E filter)删除满足给定谓词的此集合的所有元素
  • Protected void removeRange(int fromIndex,int toIndex)从此列表中删除所有索引文fromIndex(含)和tiIndex之间的元素

  • void replaceAll(UnaryOperator operator)该列表的每个元素替换为将该运算符应用于该元素的结果
  • boolean retainAll(Collection<?> c) 仅保留此向量中包含在指定集合的元素
  • E set(int index,E element) 用指定的元素替换此Vector中指定位置的元素
  • void setElementAt(E obj,E element)设置在指定的组件,index此向量的要指定的对象

  • boolean contains(Object o) 如果此向量包含指定的元素,则返回true
  • boolean contains (Collection<?> c) 如果此向量包含指定集合中所有的元素,则返回ture
  • copyInto(Object[] anarray) 将此向量的组件复制到指定的数组中
  • E elementAt(int index) 返回指定索引处的组件
  • Enumeratin element()返回此向量的组件的枚举
  • boolean equals(Object o)将指定的对象与此向量进行比较以获得相等性
  • E firstElement()返回此向量的第一个组件即索引号为0的项目
  • void forEach(Consumer<?super E> action) 对Iterable的每个元素执行给定的操作,直到所有元素都被处理或者动作引发异常
  • E get(int index) 返回此向量中指定位置的元素
  • int hashCode()返回此Vector的哈希码值
  • int indexOf(Object o) 返回此向量中指定元素的第一次出现的索引,如果此向量不包含元素,则返回-1
  • int indexOf(Object o,int index)返回此向量中指定元素的第一次出现的索引,从index向前index,如果未找到该元素,则返回-1
  • int lastIndexOf(Object o)返回此向量中指定元素的最后异常出现的索引,如果此向量不包含元素,则返回-1
  • int lastIndexOf(Object o,int index)返回此向量中指定元素最后异常出现的索引,从index,如果未找到元素,则返回-1
  • Iterator iterator()以正确的顺序返回该列表中的元素的迭代器
  • boolean isEmpty() 测试此矢量是否没有组件
  • E lastElement()返回向量的最后一个组件
  • List subList(int formIndex,int toIndex)返回此列表之间的formIndex(包含)和toIndex之间的独占视图

遍历

import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;
import java.util.function.Consumer;

public class VectorDemo {
    public static void main(String[] args) {
    Vector<String> vector=new Vector<String>();
    vector.add("徐庶");
    vector.add("曹仁");
    vector.add("吕蒙");
    vector.add("周瑜");
    //Ⅰ
    for(String v:vector) {
        System.out.print(v+" ");
    }
    System.out.println();
    //Ⅱ
    vector.forEach(new Consumer<String>() {

        @Override
        public void accept(String t) {
            // TODO Auto-generated method stub
            System.out.print(vector+" ");
        }
    });
    System.out.println();
    //Ⅲ
    for(int i=0;i<vector.size();i++) {
        System.out.print(vector.get(i)+" ");
    }
    System.out.println();
    //Ⅳ
    Iterator<String> iterator=vector.iterator();
    while (iterator.hasNext()) {
        String string=(String)iterator.next();
        System.out.print(string+" ");
    }
    System.out.println();
    //Ⅴ
    Enumeration<String> enumeration=vector.elements();
    while(enumeration.hasMoreElements()) {
        System.out.print(enumeration.nextElement().toString()+" ");
    }
    }
}
输出
徐庶 曹仁 吕蒙 周瑜 
[徐庶, 曹仁, 吕蒙, 周瑜] [徐庶, 曹仁, 吕蒙, 周瑜] [徐庶, 曹仁, 吕蒙, 周瑜] [徐庶, 曹仁, 吕蒙, 周瑜] 
徐庶 曹仁 吕蒙 周瑜 
徐庶 曹仁 吕蒙 周瑜 
徐庶 曹仁 吕蒙 周瑜 

文章作者: HaiLin Zhou
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 HaiLin Zhou !
评论
  目录