11(2)Vector(向量)

底层基于数组,扩容是基于三目运算符,默认是增加一倍,但是可以指定增量,如果增量不为0就可以按照增量进行数组扩容

Vector是java的第一个集合类,是一个线程安全的集合

Vector()
构造一个空向量,使其内部数据数组的大小 10及其标准容量增量为零。
Vector(Collection<? extends E> c)
构造一个包含指定集合元素的向量,它们在集合的迭代器返回的顺序中返回。
Vector(int initialCapacity)
用指定的初始容量构造一个空向量,并以其容量增量等于零。
Vector(int initialCapacity, int capacityIncrement)
用指定的初始容量和容量增量构造一个空向量。 

初始值就是Vector底层数组的初始长度,增量是当容器中的元素多了出来以后要增加底层数组的长度,就是以增量往上加的

    private void grow(int minCapacity) {
        // overflow-conscious code
        int oldCapacity = elementData.length;
        int newCapacity = oldCapacity + ((capacityIncrement > 0) ?
                                         capacityIncrement : oldCapacity);//这个就是不指定就是翻倍,指定capacityIncrement就是按指定值增长
        if (newCapacity - minCapacity < 0)
            newCapacity = minCapacity;
        if (newCapacity - MAX_ARRAY_SIZE > 0)
            newCapacity = hugeCapacity(minCapacity);
        elementData = Arrays.copyOf(elementData, newCapacity);
    }

 遍历Vector

    public static void main(String[] args) {
        //创建集合对象
        Vector<String> v=new Vector<String>();
        //添加元素
        v.add("1");
        v.add("2");
        v.add("3");
        v.add("4");
        //调用方法返回古老的迭代器
        Enumeration<String> e=v.elements();
        //迭代遍历
        while(e.hasMoreElements())//判断是否还有元素
        {
            //获取元素
            String s=e.nextElement();
            System.out.println(s);
        }
    
    }

}

 

posted @ 2019-07-19 17:13  三十六烦恼风x  阅读(279)  评论(0)    收藏  举报