美文网首页Java 杂谈
Vector学习笔记

Vector学习笔记

作者: 无敌锤子棒棒鸡 | 来源:发表于2018-09-28 16:38 被阅读0次

Vector介绍:

1.Vector是一个矢量队列,继承于AbstractList,实现了List, RandomAccess, Cloneable接口。
2.Vector是一个队列,支持增删改查等操作。
3.实现了RandmoAccess接口,可以随机访问元素(这里的随机是指可根据下标访问,感觉大多数的说法是随机,我个人更倾向于任意吧),对于元素的访问快捷方便。
4.实现了Cloneable接口,可以被clone。
5.很重要!!!Vector与ArrayList不同,Vector是线程安全的。

从源码分析:

[底层实现]
    protected Object[] elementData;
    Vector的底层实现是数组。

[构造方法]

第一种:
    public Vector() {
        this(10);
    }
    从这里可以看出Vector的默认长度是10


第二种:
    public Vector(int initialCapacity) {
        this(initialCapacity, 0);
    }
    initialCapacity代表了用户可以自定义Vector的初始大小


第三种:
    public Vector(int initialCapacity, int capacityIncrement) {
        super();
        if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal Capacity: "+
                                            initialCapacity);
        this.elementData = new Object[initialCapacity];
        this.capacityIncrement = capacityIncrement;
    }
    capacityIncrement表示当Vector的默认大小被填满时,Vector的扩充大小。


第四种:
    public Vector(Collection<? extends E> c) {
        elementData = c.toArray();
        elementCount = elementData.length;
        // c.toArray might (incorrectly) not return Object[] (see 6260652)
        if (elementData.getClass() != Object[].class)
            elementData = Arrays.copyOf(elementData, elementCount, Object[].class);
    }
    将一个Collection类型的集合填充到Vector容器中。

[容器扩展]
    当未设置增长值时,翻倍增长。

遍历方式:

[通过for循环访问]
    /** 普通的for循环 **/
    for (int i = 0; i < vector.size();i ++){
        System.out.println(vector.get(i));
    }

    /** foreach **/
    for(Object member : vector){
        System.out.println(member);
    }

    /** 也可以通过java8的labmda表达式遍历 **/
    vector.forEach( member -> {
        System.out.println(member);
    });

[迭代器遍历]
    Iterator iterator = vector.iterator();
    while (iterator.hasNext()){
        System.out.println(iterator.next());
    }
[Enumeration遍历]
    /** 看了网上的资料,了解到是jdk1.0的产物,出现早于Iterator,一般情况下不会用到 **/
    Enumeration enumeration = vector.elements();
    while (enumeration.hasMoreElements()){
        System.out.println(enumeration.nextElement());
    }

PS:今晚出去吃柠檬泰,后天就能回家了,虽然是国庆假期,但是还是带本书回去看看吧。

相关文章

网友评论

    本文标题:Vector学习笔记

    本文链接:https://www.haomeiwen.com/subject/mnppoftx.html