Niz*_*zam 0 java collections hashtable vector
我知道这个问题可能有点愚蠢,但我只是想澄清疑问.在浏览Collection的Java教程(http://docs.oracle.com/javase/tutorial/collections/index.html)时,我没有找到有关Vector和Hashtable的任何相关信息.两者都属于Collection框架,因为Vector是List的实现,而Hashtable是Map的实现.如果是这样那么为什么它不在Sun教程中?我在哪里可以找到Sun的Collection教程,其中包含有关Vector和Hashtable的优秀文档以及有关存储在List,Set和Map中的元素的深入知识?
因为Vector
并且Hashtable
是旧的遗留集合类.不要使用它们.
而不是Vector
使用ArrayList
; 而不是Hashtable
使用HashMap
.
当Java 1.2发布时(很久以前),新的集合类被添加到Java(集合框架)中.Sun没有删除旧的类Vector
,Hashtable
因为他们希望新的Java版本向后兼容.现在我们还有那些旧班.
一个不同之处需要注意的是,Vector
和Hashtable
是同步的,而ArrayList
并HashMap
没有.大多数时候你不需要同步; 如果你这样做,那么你必须注意同步你的ArrayList
,如果你需要一张地图,请使用ConcurrentHashMap
而不是普通HashMap
.