如果我们可以使ArrayList同步,那么Vector的需求是什么? 同样, 如果我们可以使HashMap同步,那么Hashtable的需求是什么?
答案 0 :(得分:6)
Vector
和ArrayList
都存在的原因是历史的:Java 1中有Vector
类,而Java 1.2中添加了ArrayList
“轻量级”替代品。 Java保留Vector
以实现向后兼容;除非您想要ArrayList
的同步版本,否则不应使用它。
答案 1 :(得分:0)
使用外部同步制作HashMap有助于避免对同一HashMap的并发访问。 HashTable从java 1.2开始就被弃用了,这是同步的,这会导致一些性能开销,这就是为什么java支持这两种实现,即同步和非同步版本。