当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。 2、Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问...
Hashtable和HashMap它们的性能方面的比较类似 Vector和ArrayList,比如Hashtable的方法是同步的,而HashMap的不是。 3. ArrayList & LinkedList ArrayList的内部实现是基于内部数组Object[],所以从概念上讲,它更象数组,但LinkedList的内部实现是基于一组连接的记录,所以,它更象一个链表结构,所以,它们在性能上有很大的差别...
考虑使用Vector类;如果是单线程情况下,建议优先使用ArrayList类,因为它的效率更高。
5.线程的安全性不同,vector是线程安全的,在vector的大多数方法都使用synchronized关键字修饰,arrayList是线程不安全的(可以通过Collections.synchronizedList()实现线程安全) 6.性能上的差别,由于vector的方法都有同步锁,在方法执行时需要加锁、解锁,所以在执行过程中效率会低于ArrayList,另外,性能上的差别还体现在底层的Ob...
1.arraylist是线程不安全的,而vector通过synchronized来实现同步,所以它是线程安全的。 如果集合中的元素的数目大于目前集合数组的长度时,vector增长率为目前数组长度的100%,而arraylist增长率为目前数组长度的50%.如过在集合中使用数据量比较大的数据,用vector有一定的优势,因为不需要过多的扩容操作。
2.22. ArrayList 和 Vector 比较 ArrayList 和 Vector 在很多时候都很类似。两者都是基于索引的,内部由一个数组支持。两者维护插入的顺序,我们可以根据插入顺序来获取元素。ArrayList 和 Vector 的迭代器实现都是 fail-fast 的。ArrayList 和 Vector 两者允许 null 值,也可以使用索引值对元素进行随机访问。以下是 ...
本文不打算去测试在多线程环境下两者的对比,因为在使用ArrayList的时候,大多数场景是单线程的环境,本文就在单线程的环境中对Vector和ArrayList进行对比,这种对比不是精确的对比,只是对比一下快慢。本文从添加,遍历和随机访问三个方面进行对比。测量的方法比较简单,就是先向集合中添加元素,然后再去遍历元素,最后分别统计...
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或...
版本:Vector的版本是JDK1.0, ArrayList的版本是JDK1.2版。 同步、安全和效率:Vector是线程同步的安全性高,效率低, ArrayList是线程非同步的,安全性低,效率高。 Map接口_HashMap_Hashtable的用法详解 Map接口常用的方法有哪些? 答 put(Object key, Object value) //增加 isEmpty() //判断是否为空 get(Object ...