Java 向量如何同步和向量如何通过将数组大小加倍来增加其大小
这是我的密码Java 向量如何同步和向量如何通过将数组大小加倍来增加其大小,java,vector,synchronization,size,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.ad
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());
}
}
}
当我运行这个程序时,输出就来了
五,
6.
9
4.
1.
所以我对它的定义感到有点困惑:
1.向量是同步的。
2.向量通过将数组大小加倍来增加其大小
请解释一下
1.向量是同步的
这意味着向量方法在默认情况下是同步的,因此对向量的操作是线程安全的
2.Vector increases its size by doubling the array size
向量的初始容量为10。当向量的大小达到10时,它的容量就会加倍。因此,如果大小是10,那么容量将是20
new vector()
创建向量时,它的内部数组将以一定的大小初始化,因此它只能包含一定数量的值。但是,当您尝试添加值时,当内部数组的一半以上被填充时,内部数组将以加倍的大小重新初始化,以便您可以根据需要包含任意多的值输出有什么问题?您对此的预期输出是什么?它实际上不会使数组大小增加一倍。但创建一个大小为原来两倍的新数组,并将内容从旧数组复制到新数组中。旧的数组被丢弃,将被垃圾收集。旁注:Vector已经过时,在大多数情况下,您应该使用ArrayList作为替换。不完全是,正如我在回答中所说的那样,容量是之前的两倍。您是否可以添加一些代码来检查您所说的add()同步的Vector方法?您能告诉我如何使用代码进行检查吗?内部数组的大小如何调整取决于实现。从OpenJDK到Oracle的JDK可能有所不同。是的,Scaridge和arora是对的。。我只是想把它描述成它是做什么的,而不是它是如何做的