Java中的向量

时间:2012-01-06 07:28:29

标签: java collections

我最近开始学习Java。我正在研究矢量,我遇到了各种声明Vector

的方法
  

Vector()

     

Vector(int size)

     

Vector(int size,int incr)

     

Vector(Collection c)

我能够理解前两种类型,但无法理解第三种类型的增量类型以及使用第四种类型的内容和时间。

plz解释。

5 个答案:

答案 0 :(得分:5)

当你想控制时,你应该使用Vector(int size,int incr),它会在溢出后设置Vector的大小。

当你想用另一个Collection中的值填充它时,你应该使用Vector(Collection c)。

关注this link以获取更多信息。

请注意,在大多数情况下,您应该使用ArrayList,而不是Vector。 Vector将其方法同步,您不需要总是这样。

答案 1 :(得分:4)

  

capacityIncrement - 向量溢出时容量增加的量。

这意味着如果你的矢量可以存储10个项目并且你将第10个项目放入其中,那么矢量将增加大小。您可以告诉向量从那一刻起他可以存储多少项目。如果你有一个向量,你可以添加很多项目,那么你可以增加增量。然后,矢量不必一直增加大小,这会影响性能。

  

Vector(Collection c):按照集合的迭代器返回的顺序构造一个包含指定集合元素的向量。

您可以在向量中放置一组元素,并使用向量类的功能。

答案 2 :(得分:2)

Vector(int size, int incr)

incr - 如果Vector变满,它的容量应该增加多少。

Vector(Collection c)

如果您已经有另一个集合(List,set)并通过复制这些集合值来创建初始向量。

答案 3 :(得分:2)

Vectors使用底层数组来存储它们的元素。如您所知,阵列的容量是固定的。一旦你说数组大小为20,那就永远不会改变:

int[] array = new int [20];

对于第三个构造函数,例如:

Vector v = new Vector(20, 10);

这意味着,即使向量最初为空,它也有一个大小为20的基础数组。一旦你在其中添加了20个元素,它的容量(基础数组大小)将增加到30。底层数组的大小增加实际上是通过构造一个具有新大小的新数组并将旧数组中的所有元素复制到新数组来完成的。这是一项代价高昂的操作,因此如果您知道矢量将快速增长,最好设置一个较大的增量值,以便尽可能少地显示此数组重新分配。

对于第4个构造函数,你基本上可以从你想要的任何集合中创建一个向量。

答案 4 :(得分:1)

第三个,来自documentation

  

构造一个具有指定初始容量和容量增量的空向量。

简单地说,第二个参数告诉我们在达到旧容量时容量会增加多少。

第四,来自documentation

  

按照集合的迭代器返回的顺序构造一个包含指定集合元素的向量。

您可以在创建Vector时插入元素。