java.util.Vector与Java开发工具包(JDK)的第一个版本一起提供。 java.util.ArrayList在Java版本1.2中引入,是Java集合框架的一部分。根据Java API,在Java 2平台v1.2中,vector已进行了改进以实现List,vector也成为java collection框架的一部分。
Vector的所有方法都是同步的。但是,ArrayList的方法不同步。 Java collection框架的所有新实现均未同步。
Vector和ArrayList都在内部使用Array作为数据结构。它们是可动态调整大小的。区别在于内部调整大小的方式。默认情况下,Vector的大小增加时,Vector会将数组的大小加倍。但是,当ArrayList的大小增加时,其大小将增加一半。 因此,根据Java API,唯一的主要区别是,Vector的方法是同步的,而ArrayList的方法是不同步的。
Vector还是ArrayList?在Java中使用哪个更好?
通常,执行“同步”方法会比不同步方法产生更高的性能。记住差异,使用Vector会比ArrayList产生性能下降。但是,当确实需要线程安全操作时,需要使用Vector。
Java中是否有Vector的替代版本?
可以使用java collection utility 工具类同步ArrayList,然后可以使用ArrayList本身来代替Vector。当不需要同步操作并且您仍在寻找更好的性能时,可以使用“ Array”代替ArrayList。但是开发过程很繁琐,因为它不提供用户友好的方法。使用Vector或ArrayList时,请始终将其初始化为Java程序所需的最大容量。由于增加大小是较昂贵的操作。