优秀的编程知识分享平台

网站首页 > 技术文章 正文

对于Java里Vector及ArrayList理解

nanyue 2024-08-12 22:29:51 技术文章 10 ℃

先看这两类都完结List接口,List用于寄存多个元素,能够保护元素的次序,并且答应元素的重复。

1.ArrayList是最常用的List完结类,内部是通过数组完结的,它答应对元素进行快速随机访问。数组的缺陷是每个元素之间不能有距离,当数组大小不满足时需求添加存储才能,就要讲已经有数组的数据复制到新的存储空间中。当从ArrayList的中心方位刺进或许删去元素时,需求对数组进行复制、移动、价值比较高。因此,它适宜随机查找和遍历,不适宜刺进和删去。

2.Vector与ArrayList一样,也是通过数组完结的,不同的是它支撑线程的同步,即某一时间只要一个线程能够写Vector,避免多线程一同写而引起的不一致性,但完结同步需求很高的花费,因此,访问它比访问ArrayList慢。

共性总结:检查Java源代码,发现当数组的大小不够的时分,需求从头建立数组,然后将元素拷贝到新的数组内,ArrayList和Vector的扩展数组的大小不同。

ArrayList和Vector差别:

1.ArrayList在内存不够时默许是扩展50% + 1个,Vector是默许扩展1倍。

2.Vector供应indexOf(obj, start)接口,ArrayList没有。

3.Vector属于线程安全级别的,但是大多数状况下不运用Vector,因为线程安全需求更大的系统开支。

小结:在项目中如何运用这两个类都根据具体状况分析合理的运用.

最近发表
标签列表