Vector(同步)与ArrayList(非同步)



我们如何证明Vector实现是同步的,而ArrayList实施不是同步的,即使它们检索和存储数据的功能是相同的?

源代码及其文档(如果编写正确)是您可以100%信任的唯一来源里面找不到的东西或不是从里面写的东西派生出来的(如果有假设的话,要小心)不能完全信任!即使你测试了一些性质,并且你的测试表明性质存在,也不总是那么快得出结论,并说性质得到了满足。首先阅读代码或文档,并尝试从中推断出它。

对于来自Java API的类,您可以在这里找到文档(或者在这里,相同的源,不同的表示)
ArrayList类的文档中,它用粗体写:

请注意,此实现不是同步的

因此您可以确保它没有同步。

Vector课程的文档页面上,在介绍文本的最后一段,最后一句话是:

与新的集合实现不同,Vector是同步的。如果不需要线程安全实现,建议使用ArrayList代替Vector。

因此您可以确保它是同步的。如果您不需要同步容器,他们甚至建议您不要使用它。

最新更新