Vector synchronized和Vector如何通过将数组大小加倍来增加其大小

时间:2014-01-16 06:24:05

标签: java vector synchronization size

这是我的代码

import java.util.Iterator;
import java.util.Vector;

public class Simple {
    public static void main(String args[]) {
        Vector v1 = new Vector();
        v1.add(5);
        v1.add(6);
        v1.add(9);
        v1.add(4);
        v1.add(1);

        Iterator it = v1.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

当我运行此程序时,输出

5 6 9 4 1  所以我对它的定义感到有点困惑:

1.Vector同步。 2.Vector通过将阵列大小加倍来增加其大小

请解释。

3 个答案:

答案 0 :(得分:2)

  

1.Vector同步。

这意味着默认情况下矢量方法是同步的,因此vector上的操作是线程安全的。

2.Vector increases its size by doubling the array size

向量的初始容量为10.当向量的大小达到10时,它的容量加倍。所以如果大小是10那么容量将是20

答案 1 :(得分:0)

  1. 要检查Vector是否已同步(它是..),您必须使用多个线程并尝试写入向量..您没有这样做..

  2. 是的,内部向量旨在这样做..但是如果你做vector.size()它会显示当前在向量中的元素数量(而不是分配的实际大小)。查看向量的源代码,了解如何实现大小更改。

答案 2 :(得分:0)

  1. Vector is synchronized意味着如果您从不同的线程执行某些操作(例如添加元素),您将不会得到意外的结果,这意味着每个操作都将正确完成。
  2. 使用new Vector()创建向量时,内部数组会以某种大小初始化,因此它只能包含一定数量的值。但是当你尝试添加一个值时,当内部数组的一半以上被填充时,内部数组会以一个加倍的大小重新初始化,这样你就可以根据需要包含尽可能多的值。