我们如何证明 Vector 实现已同步且 ArrayList 实现未同步,即使它们检索和存储数据的功能相同?
答案 0 :(得分:0)
源代码及其文档(如果写得正确)是您可以信任100%的唯一来源。那里找不到的东西或者不是从那里写的东西得到的(是小心做出的假设,如果有的话)不能完全被信任!即使您测试了某些属性并且您的测试显示存在属性,但并不总是能够快速得出结论并说明属性已得到满足。首先阅读代码或文档,并尝试从那里推断出来。
如果是Java API中的类,您可以找到文档here(或here,相同的来源,不同的演示文稿)。
在ArrayList
class的文档中,它以粗体显示:
请注意,此实施未同步。
所以你可以确定它没有同步。
在Vector
class的文档页面上,在简介文本的最后一段中,最后一句是:
与新的集合实现不同,Vector是同步的。如果不需要线程安全实现,建议使用ArrayList代替Vector。
所以你可以确定它是同步的。如果您不需要同步容器,他们甚至建议您不要使用它。