java 推荐使用 ArrayList 及 HashMap,Vector和Hashtable是为了兼容以前的程序才留着的

解决方案 »

  1.   

    HashMap的区别主要是前者是同步的,后者是快速失败机制保证不会出现多线程并发错误(Fast-Fail)。在初始化一个Hashtable时,可以指定两个参数:初始容量、负荷,这两个参数强烈的影响着Hashtable的性能。容量是指对象的个数,负荷是指散列表中的实际存储的对象个数和容量的比率。如果初始容量太小,那么Hashtable需要不断的扩容并rehash(),而这是很耗时的;如果初始容量太大,又会造成空间的浪费。负荷则相反,负荷太小会造成空间浪费,负荷太大又会耗时(因为这会造成较多的关键字的散列码重复,Hashtable使用一个链接表来存储这些重复散列码的对象)。容量的缺省值是11,负荷的缺省值是0.75,一般情况下你都可以使用缺省值来生成一个Hashtable。另外,在Hashtable中的大部分的方法都是同步的。
      

  2.   

    http://www.javaresearch.org/article/showarticle.jsp?column=545&thread=5657
    http://www.javaresearch.org/article/showarticle.jsp?column=91&thread=648
      

  3.   

    ArrayList和Vector区别:Vector按先后顺序来存放对象,速度较快。ArrayList中存放的对象可以进行排序,速度较慢。
    Hashtable(哈希表),HashMap(哈希图): 你可以看看数据结构的书,由<键,值>对组成的,它们之间区别很小,可以看作近似相同