繁体   English   中英

Java中的向量

[英]Vectors in Java

我最近开始学习Java。 我正在研究Vectors ,我遇到了各种声明Vector的方法

矢量()

矢量(int size)

矢量(int size,int incr)

矢量(集合c)

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

请解释一下。

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

如果要使用另一个Collection中的值填充它,则应使用Vector(Collection c)。

请点击此链接获取更多信息。

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

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

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

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

您可以在向量中放置元素集合并使用向量类的功能。

Vector(int size, int incr)

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

Vector(Collection c)

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

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

int[] array = new int [20];

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

Vector v = new Vector(20, 10);

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

对于第4个构造函数,您基本上可以从任何所需的集合创建向量。

第三个,来自文档

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

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

第四,来自文档

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM