黑马程序员技术交流社区
标题:
Vector 类求解
[打印本页]
作者:
朱元强
时间:
2011-9-29 11:59
标题:
Vector 类求解
我想问的:
Vector 类的对象与数组有什么关系.. 希望得到比较犀利的解析.比DOM树, SAX还强大的解析
:hug:
作者:
匿名
时间:
2011-9-29 12:03
标题:
回复 楼主 的帖子
Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。
作者:
匿名
时间:
2011-9-29 12:57
Array是非类型化、稀疏数组: 所有元素类型并不要求相同,也不要求每个元素都有值,系统会添加默认空元素。
//未初始化数组元素个数
var arrA:Array=new Array();
arrA[0]=0;
arrA[9]=9;
trace(arrA);//输出:0,,,,,,,,,9
trace(arrA[1]);//输出:undefined
//初始化数组元素个数为11
var arrB:Array=new Array(11);
arrB[0]=0;
arrB[9]=9;
trace(arrB);//输出:0,,,,,,,,,9,
trace(arrB[1]);//输出:undefined
[b]Vector是类型化、密集型数组[/b]:
//未初始化数组元素个数
var vectorA:Vector.<int>=new Vector.<int>();
vectorA[0]=0;
vectorA[9]=9;
trace(vectorA);//RangeError: Error #1125: 索引 9 超出范围 1。
trace(vectorA[1]);
//初始化数组元素个数为10
var vectorB:Vector.<int>=new Vector.<int>(10);
vectorB[0]=100;
vectorB[9]=9;
trace(vectorB);//输出:100,0,0,0,0,0,0,0,0,9
trace(vectorB[1]);//输出:0
//初始化数组元素个数为11
var vectorC:Vector.<int>=new Vector.<int>(11);
vectorC[0]=100;
vectorC[9]=9;
trace(vectorC);//输出:100,0,0,0,0,0,0,0,0,9,0
trace(vectorC[1]);//输出:0
作者:
匿名
时间:
2011-9-29 13:01
标题:
Vector的底层数据结构,以及被淘汰原因。
1.Vector的底层数据结构是用数组实现的.是个集合类,这个集合只能只能存储对象,和数组相比较而言,vector的优势在于它是可变长度的,当其默认的长度被占满后,其会自动延长50%。Vector对象有自己的迭代器Enumeration类 。
2《拓展》.在jdk1.5以后其差不多已经被Arraylist所淘汰,原因在于Verctor原来是考虑多线程并发时而引发的安全问题,影响了对象的操作效率,后来发现这些安全问题几乎是没有必要的,所以被舍弃。相比较而言的话,用Arraylist的数据操作效率会很快,所以被Arraylist所淘汰。
作者:
匿名
时间:
2011-9-29 14:15
Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。
作者:
匿名
时间:
2011-9-29 14:28
标题:
Vector 类
Vector 类为什么被淘汰了,就是因为它是线程同步的 也就是说效率不高,软件要求的不就是效率和美观相结合吗
每一个被淘汰的知识点 大多数是因为他的效率不高所造成的! 这就是sun公司一直追求的目标!
既然有了ArrayList效率比Vector高,那么它的存在就没有什么意义了 但个人感觉不是完全别淘汰 ,肯定还有它的价值所在! 只是我们平时需求没设计到而已!
Vector和arraylist在实现自增长的方式是不一样的!
这个知识点 在笔试中很常见!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2