比较Java中的Vectors和Arrays之间的功能

时间:2011-07-31 12:29:18

标签: java arrays vector

我一直在考虑这个问题很长一段时间。 VectorsArrays之间有什么区别?我知道他们会做类似的事情,如果不是确切的话。

字符串数组

String[] array = new String[4];

字符串向量

Vector<String> vector = new Vector<String>(4);

<小时/> 对我来说,为什么同时存在arraysvectors似乎有点多余。使用其中一个是否有任何优点或缺点?

11 个答案:

答案 0 :(得分:6)

矢量可调整大小。数组不是。

答案 1 :(得分:4)

不同之处在于'Vector'是程序员的扩展,而数组是语言本身的内置函数。

您可以编辑Vector的行为方式(通过编辑其源代码),而数组则由编译器定义。

显然,Vector可能具有可能的大小(取决于实现)。数组是静态的,无法调整大小 - 您必须重新创建它并复制数据。

答案 2 :(得分:3)

矢量已同步。数组不是(?)。

答案 3 :(得分:2)

无法重新调整数组大小,而矢量可以。

Vector在内部使用Arrays。 Vector与Array相比的主要优势在于其容量的自动增加。数组一旦创建就保持其大小,Vector不会

答案 4 :(得分:2)

  

对我来说似乎有点多余,为什么会有数组和   载体

首先,Vector可以调整大小。如果声明一个大小为10的数组,除非将内容复制到另一个更大的数组,否则总是留下10。 Vector的方法是同步的。

Vectorcollections framework的一部分。矢量是List。还有其他列表,ArrayListLinkedList等具有特定功能的列表。有Set个和Map个。所有这些都包含项目的“列表”,但每个项目在特定情况下都具有特定的优势。

您可能想了解java collections

答案 5 :(得分:1)

向量会自动调整大小以适应您想要的任意数量的条目。一个数组的大小是固定的,当你尝试添加超过你分配的数量时,它会给你一个OutOfBounds异常。

当您提供矢量的大小时,它就是它的原始大小。它会根据需要自动增长/缩小。

答案 6 :(得分:1)

1-矢量可调整大小,数组不是

2-向量负责内存分配和释放,而阵列则不负责。这使得向量比数组更安全。

3-向量在其实现的函数上具有良好的性能,您可能无法通过自己的数组编程来实现。

4-最后我认为大多数时候使用矢量更明智。

答案 7 :(得分:0)

数组是一种基本的java数据结构,其大小在定义时是固定的。

Vector是Java Collections Framework的一部分,与您的信念相反,或者甚至与数组不相同。在许多其他内容中,Vector可以调整大小并且可以与其他集合进行交互。

答案 8 :(得分:0)

不需要Java数组类型。他们实际上创造了很多问题。如果可以,请避免使用它们。

我们可以更好地用标准类Array<T>替换它们。一些新的后Java语言正在采用这种方法。

(历史警报)在过去,Java没有泛型,非泛型集合类很难使用(有大量的铸件)。然后数组类型真的是穷人的泛型,因为它们带有元素类型信息。这就是为什么许多方法返回数组而不是List

答案 9 :(得分:0)

我认为上述建议并不好。检查此链接以获得简要的想法。 Difference b/w Array and Vector

答案 10 :(得分:0)

向量有助于轻松插入和删除元素,而数组有助于轻松地对元素进行排序和访问。

矢量可以包含不同类型的元素 数组只是形成它们时定义的类型

你可以使用数组列表,它与vector类似,提供了更好的功能