小弟总结的数组等几个易混淆的概念,大部分结论搜索于网上,请大家来指正,补充:Array可以存放Object和基本数据类型,但创建时必须指定数组的大小,并不能再改变,Vertor是放的Object。
Vertor一维,Hashmap/Hashtabe二维;
Vertor/Arraylist用index作检索,Hashmap/Hashtabe用key作为检索;
Hashmap,Arraylist不是同步的,意味着它们的速度更快;
Hashtable,Vertor是同步的,适用于与线程有关时;
Hashtale的key不能为null,Hashmap的key和values都可以为null;性能方面:
通过索引访问和更新元素时,Vector和ArrayList的实现有着卓越的性能,因为不存在除范围检查之外的其他开销。插入元素和删除元素总是要进行数组复制。LinkedList的实质是个双向链表。ArrayList和Vector通常比LinkedList和同步封装之后的LinkedList有着更好的性能。Hashmap,Arraylist不是同步的,属于轻量级应用,性能上应该好些。

解决方案 »

  1.   

    Hashmap,Arraylist不是同步的,意味着它们的速度更快;
    Hashtable,Vertor是同步的,适用于与线程有关时;表达不准确,同步不同步由Collections类的方法确定.他们的快慢与随机访问和顺序访问雷同.
      

  2.   

    Hashmap,Arraylist不是同步的,意味着它们的速度更快;
    Hashtable,Vertor是同步的,适用于与线程有关时;表达不准确,同步不同步由Collections类的方法确定.他们的快慢与随机访问和顺序访问雷同.-----------------------------------访问的快慢当然与同步与否有关了,同步必然导致速度相对下降
      

  3.   

    HashMap的key和value都可以为null吗?
      

  4.   

    小弟总结的数组等几个易混淆的概念,大部分结论搜索于网上,请大家来指正,补充:Array可以存放Object和基本数据类型,但创建时必须指定数组的大小,并不能再改变,   //Array可以存放任意类型的数据
    Vertor是放的Object。
    Vertor一维,Hashmap/Hashtabe二维;
    Vertor/Arraylist用index作检索,Hashmap/Hashtabe用key作为检索;
    Hashmap,Arraylist不是同步的,意味着它们的速度更快;
    Hashtable,Vertor是同步的,适用于与线程有关时;
    Hashtale的key不能为null,Hashmap的key和values都可以为null;性能方面:
    通过索引访问和更新元素时,Vector和ArrayList的实现有着卓越的性能,因为不存在除范围检查之外的其他开销。插入元素和删除元素总是要进行数组复制。LinkedList的实质是个双向链表。ArrayList和Vector通常比LinkedList和同步封装之后的LinkedList有着更好的性能。Hashmap,Arraylist不是同步的,属于轻量级应用,性能上应该好些。
      

  5.   

    to hcom(迷失在爪哇世界中) 
    HashMap的key和value都可以为null吗?可以
      

  6.   

    Vector的效能不如ArrayList,我试过
      

  7.   

    LinkedList的实质是个双向链表。ArrayList和Vector通常比LinkedList和同步封装之后的LinkedList有着更好的性能。
    ====================
    那element删除和插入的性能怎么说呢?