java 容器之Vector

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/woxueplc/article/details/80512502

Vector
一. 基本特点
1. 动态数组,初始容量为10.(本质上就是数组)
2. 线程同步(区别于动态数组ArrayList).Vector 增加或者删除元素接口均加了同步关键字。
源码如下所示:

public synchronized boolean add(E var1) {
    ++this.modCount;
    this.ensureCapacityHelper(this.elementCount + 1);
    this.elementData[this.elementCount++] = var1;
    return true;
}
public synchronized void addElement(E var1) {
    ++this.modCount;
    this.ensureCapacityHelper(this.elementCount + 1);
    this.elementData[this.elementCount++] = var1;
}

public synchronized boolean removeElement(Object var1) {
    ++this.modCount;
    int var2 = this.indexOf(var1);
    if(var2 >= 0) {
        this.removeElementAt(var2);
        return true;
    } else {
        return false;
    }
}


二. 试用范围
 主要用于存储的元素个数不定,且需要保证线程安全的地方。

二. Deme
简单给出了增加和删除元素的方法。
public class myClass {
    public static void main(String[] args){
        Vector vector = new Vector();
        vector.add("one");
        vector.add("two");
        vector.add("three");
        vector.add("four");
        vector.add("five");
        System.out.println("vector ="+vector);

        //增加元素(两种方法均往数组后面增加元素,差别add()boolen返回值而addElement没有)
        vector.addElement("six");
        vector.add("seven");
        System.out.println("vector ="+vector);

        //移除指定Index的元素
        vector.remove(1);
        System.out.println("vector ="+vector);
        //移除指定值的元素
        vector.remove("three");
        System.out.println("vector ="+vector);

        vector.add(4,"eight");
        System.out.println("vector ="+vector);

    }
}

输出:
vector =[one, two, three, four, five]
vector =[one, two, three, four, five, six, seven]
vector =[one, three, four, five, six, seven]
vector =[one, four, five, six, seven]
vector =[one, four, five, six, eight, seven]

Process finished with exit code 0

四. 总结:注意使用的范围,如果不是需要线程安全,就使用ArrayList, 因为同步锁会影响访问的性能。

猜你喜欢

转载自blog.csdn.net/woxueplc/article/details/80512502
今日推荐