zoukankan      html  css  js  c++  java
  • 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);
            }
        
        }
    
    }
  • 相关阅读:
    UVA 3942 Remember the Word (Trie+DP)题解
    POJ 3630 Phone List(字符串前缀重复)题解
    HDU 1247 Hat’s Words(字典树)题解
    hdu 1671 Phone List(字典树)题解
    HDU1251 统计难题 (字典树模板)题解
    BZOJ 1556 墓地秘密
    BZOJ 3624 免费道路
    BZOJ 2286 消耗战
    BZOJ 3694 最短路
    BZOJ 1589 采集糖果
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11214466.html
Copyright © 2011-2022 走看看