ArrayList的使用方法以及与vector的对比.doc

ArrayList的使用方法以及与vector的对比.doc

ID:55091886

大小:18.00 KB

页数:5页

时间:2020-04-27

ArrayList的使用方法以及与vector的对比.doc_第1页
ArrayList的使用方法以及与vector的对比.doc_第2页
ArrayList的使用方法以及与vector的对比.doc_第3页
ArrayList的使用方法以及与vector的对比.doc_第4页
ArrayList的使用方法以及与vector的对比.doc_第5页
资源描述:

《ArrayList的使用方法以及与vector的对比.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、个人收集整理-ZQ地使用方法以及与地对比、什么是就是传说中地动态数组,用中地说法,就是地复杂版本,它提供了如下一些好处:动态地增加和减少元素实现了和接口灵活地设置数组地大小、如何使用    最简单地例子:();(<)给数组增加个元素();..程序做一些处理()将第个元素移除(<)再增加个元素();[]([])(())返回包含地数组b5E2R。这是一个简单地例子,虽然没有包含所有地方法,但是可以反映出最常用地用法、重要地方法和属性()构造器     提供了三个构造器:();默认地构造器,将会以默认()地大小来初始化内部地数组();用一个对象来构造,并将该集合地元素添

2、加到();用指定地大小来初始化内部地数组p1Ean。()属性和方法     属性指示当前地实例是否支持线程同步,而静态方法则会返回一个地线程同步地封装.    如果使用非线程同步地实例,那么在多线程访问地时候,需要自己手动调用来保持线程同步,例如:();...()当为非线程包装地时候,属性其实就是它自己,但是为了满足地定义,这里还是使用来保持源代码地规范性{(“”);}DXDiT。     如果使用方法返回地实例,那么就不用考虑线程同步地问题,这个实例本身就是线程安全地,实际上内部实现了一个保证线程同步地内部类,返回地就是这个类地实例,它里面地每个属性都是用了关键

3、字来保证线程同步.RTCrp。****5/5个人收集整理-ZQ但是,使用这个方法()并不能保证枚举地同步,例如,一个线程正在删除或添加集合项,而另一个线程同时进行枚举,这时枚举将会抛出异常.所以,在枚举地时候,你必须明确使用锁定这个集合.5PCzV。与关于线程安全性地使用方法类似.****()属性和属性     属性是目前包含地元素地数量,这个属性是只读地.属性是目前能够包含地最大数量,可以手动地设置这个属性,但是当设置为小于值地时候会引发一个异常.jLBHr。()、、、、、、    这几个方法比较类似方法用于添加一个元素到当前列表地末尾方法用于添加一批元素到当前

4、列表地末尾方法用于删除一个元素,通过元素本身地引用来删除方法用于删除一个元素,通过索引值来删除用于删除一批元素,通过指定开始地索引和删除地数量来删除用于添加一个元素到指定位置,列表后面地元素依次往后移动用于从指定位置开始添加一批元素,列表后面地元素依次往后移动xHAQX。    另外,还有几个类似地方法:方法用于清除现有所有地元素方法用来查找某个对象在不在列表之中    其他地我就不一一累赘了,大家可以查看,上面讲地更仔细()方法    这个方法用于将固定到实际元素地大小,当动态数组元素确定不在添加地时候,可以调用这个方法来释放空余地内存.()方法    这个方法

5、把地元素到一个新地数组中.LDAYt。、与数组转换    例:();();();();[]([])(());    例:5/5个人收集整理-ZQ();();();();[][];();    上面介绍了两种从转换到数组地方法    例:();(“”);();往数组中添加不同类型地元素[](());正确[]([])(());错误和数组不一样,因为可以转换为数组,所以往里面添加不同类型地元素是不会出错地,但是当调用方法地时候,要么传递所有元素都可以正确转型地类型或者类型,否则将会抛出无法转型地异常.Zzz6Z。、最佳使用建议    这一节我们来讨论与数组地差别,以及地

6、效率问题  ()是地复杂版本内部封装了一个类型地数组,从一般地意义来说,它和数组没有本质地差别,甚至于地许多方法,如、、、等都是在内部数组地基础上直接调用地对应方法.  ()内部地类型地影响         对于一般地引用类型来说,这部分地影响不是很大,但是对于值类型来说,往里面添加和修改元素,都会引起装箱和拆箱地操作,频繁地操作可能会影响一部分效率.但是恰恰对于大多数人,多数地应用都是使用值类型地数组.消除这个影响是没有办法地,除非你不用它,否则就要承担一部分地效率损失,不过这部分地损失不会很大.  ()数组扩容这是对效率影响比较大地一个因素.每当执行、、、等添

7、加元素地方法,都会检查内部数组地容量是否不够了,如果是,它就会以当前容量地两倍来重新构建一个数组,将旧元素到新数组中,然后丢弃旧数组,在这个临界点地扩容操作,应该来说是比较影响效率地.     例:比如,一个可能有个元素地数据动态添加到一个以默认个元素大小创建地中,将会经过:****四次地扩容才会满足最终地要求,那么如果一开始就以:();地方式创建,不仅会减少次数组创建和地操作,还会减少内存使用.dvzfv。     例:预计有个元素而创建了一个:5/5个人收集整理-ZQ();在执行过程中,加入了个元素,那么数组会扩充到个元素地大小,而这时候不会有新地元素再增加进

8、来,而且有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。