我一直在考虑这个问题很长一段时间。 Vectors
和Arrays
之间有什么区别?我知道他们会做类似的事情,如果不是确切的话。
String[] array = new String[4];
Vector<String> vector = new Vector<String>(4);
<小时/> 对我来说,为什么同时存在
arrays
和vectors
似乎有点多余。使用其中一个是否有任何优点或缺点?
答案 0 :(得分:6)
矢量可调整大小。数组不是。
答案 1 :(得分:4)
不同之处在于'Vector'是程序员的扩展,而数组是语言本身的内置函数。
您可以编辑Vector的行为方式(通过编辑其源代码),而数组则由编译器定义。
显然,Vector可能具有可能的大小(取决于实现)。数组是静态的,无法调整大小 - 您必须重新创建它并复制数据。
答案 2 :(得分:3)
矢量已同步。数组不是(?)。
答案 3 :(得分:2)
无法重新调整数组大小,而矢量可以。
Vector在内部使用Arrays。 Vector与Array相比的主要优势在于其容量的自动增加。数组一旦创建就保持其大小,Vector不会
答案 4 :(得分:2)
对我来说似乎有点多余,为什么会有数组和 载体
首先,Vector
可以调整大小。如果声明一个大小为10的数组,除非将内容复制到另一个更大的数组,否则总是留下10。 Vector的方法是同步的。
Vector
是collections framework的一部分。矢量是List。还有其他列表,ArrayList,LinkedList等具有特定功能的列表。有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类似,提供了更好的功能