`

java中 vertor array,arraylist,hashmap的区别

阅读更多
array(数组)和Vector是十分相似的Java构件(constructs),两者全然不同,在选择使用时应根据各自的功能来确定。
  1、数组:Java arrays的元素个数不能下标越界,从很大程度上保证了Java程序的安全性,而其他一些语言出现这一问题时常导致灾难性的后果。
   Array可以存放Object和基本数据类型,但创建时必须指定数组的大小,并不能再改变。值得注意的是:当Array中的某一元素存放的是Objrct reference 时,Java不会调用默认的构造函数,而是将其初值设为null,当然这跟Java对各类型数据赋默认值的规则是一样的,对基本数据类型同样适用。
  2、Vector:对比于Array,当更多的元素被加入进来以至超出其容量时,Vector的size会动态增长,而Array容量是定死的。同时,Vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。注意:当调用Vector的size()方法时,返回Vector中实际元素的个数。
   Vector内部实际是以Array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.Object对象,不能用于存放基本类型数据,比如要存放一个整数10,得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。
   Vetor同时也实现了List接口,所以也可以算作Colletion了,只是它还特殊在:Vector is synchronized。即Vetor对象自身实现了同步机制。
  3、ArrayList:实现了List接口,功能与Vetor一样,只是没有同步机制,当然元素的访问方式为从List中继承而来,可存放任何类型的对象。
  4、HashMap:继承了Map接口,实现用Keys来存储和访问Values,Keys和Values都可以为空,它与Hashtable类的区别在于Hashtable类的Keys不能为null,并Hashtable类有同步机制控制,而HashMap类没有
分享到:
评论

相关推荐

    c++ STL容器总结之:vertor与list的应用

    1、容器(containers):各种数据结构,如vertor,list,deque,set,map.从实现的角度来看,STL容器是一种class template 2、算法(algorithms):各种算法如sort,search,copy,earse。STL算法是一种 function ...

    自己实现vector不使用泛型

    在C++编程中,`std::vector`是一个非常重要的容器,它提供了动态数组的功能,允许在运行时调整大小。然而,有时出于学习目的或者特定的需求,我们可能需要自己实现一个类似`std::vector`的数据结构。这个话题是关于...

    PMD18-T-Vector图谱

    PMD18-T-Vector是一种科研中常用的质粒载体,专门用于高效克隆PCR产物。该载体基于pUC18载体改建而成,具有pUC18的多克隆位点,且在pUC18载体的XbaI和SalI识别位点之间插入了EcoRV识别位点,使得通过EcoRV酶切后在3...

    C++ vector的用法小结

    在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。 标准库vector类型使用需要的头文件:#include 。vector 是一个类模板。不是一种数据类型,vector是一种数据类型。Vector的存储空间是连续的,list...

    Vector Magic 位图批量转矢量图软件 V1.15 汉化绿色内有注册机

    支持png,jpg转成pdf等格式的矢量图,支持批量操作。 亲自在win7试过可用。解压前要关闭360等安全软件,否则会误报为木马杀掉

    关于MSP430的学习总结

    * 中断服务函数的编写: #pragma vector = XXXX_VERTOR__interrupt void xxxxISR(void) 此外,对于MSP430F149的学习,需要了解的是看门狗的使用、定时器的使用、ADC的使用、串口的使用等等。只有通过实际的编程和...

Global site tag (gtag.js) - Google Analytics