ArrayList和Vector的区别 很简单的ArrayList al = new ArrayList();while(){....al.add(object);}读数据的时候(for int i=0;i<al.size();i++){ object = (Object)al.get(i);} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Vector是JDK旧版本中提供的一个类。Sun本来是想废弃这个类。提倡大家使用新的,就像ArrayList等。可是,Vector提供了内部同步的功能。所以,如果需要同步数据,又不想自己多写代码,很多人还是在使用Vector。所以,性能上要比ArrayList差。最大区别:Vector提供同步机制。ArrayList没有。 to JohnWoo(JohnWoo); 能说一下同步机制是什么吗? ArrayList al = new ArrayList();while(){....al.add(object);}读数据的时候for(Iterator iter = al.iterator();iter.hasNext();){ object = (Object)iter.next();} Vector线性安全,ArrayList线性不安全。Vector有同步机制,ArrayList没有同步机制。 我从本质上简单的告诉你他们的区别Vector在增加一个元素的时候用定长的方法增加。而ArrayList则是以你增加元素的大小来增加。正式这样的原理所以有dabo1980(Java小菜鸟) 说的Vector线性安全,ArrayList线性不安全。Vector有同步机制,ArrayList没有同步机制。 最大区别:Vector提供同步机制。ArrayList没有。 Vector 是用在java 1.0/1.1 中的旧容器。其迭代器取名为:Enumeration (为一Interface ,比Iterator 小,只有两个函数)常用的方法如:Enumeration e = vector.elements() ;而ArrayList 为java2中的新容器,极具弹性,可在任意时间选择任一对象;其对应的迭代器为:Iterator . Iterator it = arraylist.iterator() ;虽然在java2中,Vector已经过调整,符合Collection和List规格,但总体上还是建议采用新的容器,性能上也自然是ArrayList更优。 Vector:当更多的元素被加入进来以至超出其容量时,Vector的size会动态增长。同时,Vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了。Vector内部实际是以Array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.Object对象,不能用于存放基本类型数据,比如要存放一个整数10,得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。Vetor同时也实现了List接口,所以也可以算作Colletion了,只是它还特殊在:Vector is synchronized。即Vetor对象自身实现了同步机制。ArrayList:实现了List接口,功能与Vetor一样,只是没有同步机制,当然元素的访问方式为从List中继承而来,可存放任何类型的对象。(记得给分哦 嘿嘿) 当然也有某些原因(比如同步问题)采用Vector具体看使用了 Vector所有methods都被宣告為final,无法继承与覆写. Vector 中的許多重要methods,例如addElement()和elementAt(),都是synchronized。這造成很大的效能负担. Java 2 的container library 以ArrayList 淘汰了Vector.当然也有线程同步问题采用Vector. 文本框取值问题 Struts分页问题 亟待解决 关于java.lang.OutOfMemoryError: Java heap space困惑 请教比较问题,STRUTS标签库或JSTL解决方法 jsp里点击按钮转新页面怎么实现? javabean连接池初始化问题 用java程序获取js里数组的数据 JSP中有没有直接操作时间的方法? 求一SQL语句 class reload问题 请问为什么jsp中的多个ArrayList总是被指向同一个对象(附代码) 装上ORACLE,TOMCAT 就找不到页面了!!
所以,性能上要比ArrayList差。
最大区别:Vector提供同步机制。ArrayList没有。
能说一下同步机制是什么吗?
ArrayList al = new ArrayList();while(){
....
al.add(object);
}读数据的时候
for(Iterator iter = al.iterator();iter.hasNext();){
object = (Object)iter.next();
}
Vector有同步机制,ArrayList没有同步机制。
Vector在增加一个元素的时候用定长的方法增加。
而ArrayList则是以你增加元素的大小来增加。正式这样的原理所以有dabo1980(Java小菜鸟) 说的
Vector线性安全,ArrayList线性不安全。
Vector有同步机制,ArrayList没有同步机制。
当更多的元素被加入进来以至超出其容量时,Vector的size会动态增长。
同时,Vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了。
Vector内部实际是以Array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.Object对象,不能用于存放基本类型数据,比如要存放一个整数10,得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。
Vetor同时也实现了List接口,所以也可以算作Colletion了,只是它还特殊在:Vector is synchronized。即Vetor对象自身实现了同步机制。
ArrayList:实现了List接口,功能与Vetor一样,只是没有同步机制,当然元素的访问方式为从List中继承而来,可存放任何类型的对象。(记得给分哦 嘿嘿)
当然也有线程同步问题采用Vector.