




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六单元List接口List接□方法ArrayList使用LinkedList使用List接口是Collection接口的子接口,在实现了List接口的集合中,元素是有序的,而且可以重复。List接口和Set接口一样,可以容纳所有类型的对象。List集合中的数据元素都对应一个整数型的序号索引,记录其在集合中的位置,可以根据此序号存取元素。JDK中实现了List接口的常用类有ArrayList和LinkedList。6.4.1List接□方法List接口继承自Collection接口,除了拥有Collection接口所拥有的方法外,它还拥有下列方法:●voidadd(intindex,Objecto)在集合的指定位置插入指定的数据元素。●Objectget(intindex)返回集合中指定位置的数据元素。●intindexOf(Objecto)返回此集合中第一次出现的指定数据元素的索引,如果此集合不包含该数据元素,则返回-1。●intlastIndexOf(Objecto)返回此集合中最后出现的指定数据元素的索引,如果此集合不包含该数据元素,则返回-1。●Objectremove(intindex)移除集合中指定位置的数据元素。●Objectset(intindex,Objecto)用指定数据元素替换集合中指定位置的数据元素。6.4.2ArrayList使用AitayList实现了List接口,在存储方式上ArrayList采用的是数组进行顺序存储的。ArrayList对数组进行了封装,实现了可变长度的数组。与ArrayList不同的是LinkedList,它在存储方式上采用的是链表进行链式存储。通过数据结构的学习,我们能得出这样的结论,因为ArrayList是用数组实现的,在插入或删除数据元素时,需要批量移动数据元素,故性能较差;但在查询数据元素时,因为数组是连续存储的,且可以通过下标进行访问,所以在遍历元素或随机访问元素时效率高。LinkedList正好与之相反,这一点在企业面试时经常被问到,需要大家深刻领会。继续修改《租车系统》的代码,学习ArrayList集合的使用。假设《租车系统》有如下的需求调整:(1)用户可以遍历这个系统里所有的车辆,但只能看到车型和车名。(2)当用户选中某辆车时,需要完整显示车辆信息。6.4.2ArrayList使用importjava.util.*;importorg.unitthree.*;classTestZuChe2{Publicstaticvoidmain(String[]args){intindex=-1;//用于显示序号Scannerinput=newScanner(System.in);//创建ArrayList集合,用于存放车辆ListvehAL=newArrayList();Vehiclec1=newCar("战神","长城");Vehiclec2=newCar("跑得快","红旗");Vehiclet1=newTmck(”大力士","5吨");Vehiclet2=newTruck("大力士二代”,"10吨");vehAL.add(cl);//将cl添加vehAL集合的末尾vehAL.add(c2);vehAL.add(tl);vehAL.add(t2);System.outprintln("***显示《租车系统》中全部车辆***");index=1;//增强for循环遍历for(Objectobj:vehAL){if(objinstanceofCar){Carcar=(Car)obj;System.out.println(index+"该车是轿车,其车名为:"+car.getName());}else{Trucktruck=(Truck)obj;System.out.println(index+"该车是卡车,其车名为:"+truck.getName());}index++;}System.out.print("请输入要显示详细信息的车辆编号:");//根据索引获取vehAL集合中元素,类型转换后调用show()方法输出((Vehicle)vehAL.get(input.nextInt()-l)).show();}}通过代码和运行结果可以看出,此例中采用了增强for循环的方式遍历了ArrayList集合中的所有元素,集合中元素的顺序是按照add()方法调用的顺序依次存储的,再通过调用ArrayList接口的get(intindex)方法获取指定位置的元素,并输出该对象的信息。6.4.2ArrayList使用6.4.3LinkedList使用LinkedList和ArrayList在逻辑结构上没有本质区别,只是存储结构上的差异导致程序员在决定使用哪个List实现类时需要做出选择。LinkedList接口除了拥有ArrayList接口提供的方法外,还增加了如下的一些方法:6.4.3LinkedList使用●voidaddFirst(Object0)将指定数据元素插入此集合的开头。●voidaddLast(Object0)将指定数据元素插入此集合的结尾。●ObjectgetFirst
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演员证考试题及答案
- 火灾报警及消防联动系统施工(第3版)课件汇 杨连武 0-1 电气火灾监控系统 -78-3 防电源、火灾应急照明
- 数字智商测试题及答案
- 2024年纺织产品质量认证流程试题及答案
- 2024年技术应用国际商业美术设计师考试试题及答案
- 检测数据的科学应用与分析试题及答案
- 射击裁判员试题及答案
- 2024年纺织品检验员技能试题及答案
- 实验力学考试题及答案
- 广告设计中的全球化与考试考量试题及答案
- 核电质量保证-质量体系培训课件
- 重力坝毕业设计-水电站混凝土重力坝工程设计
- 你画我猜题目(课堂)课件
- 欧洲西部(西欧) 详细版课件
- 浅圆仓仓顶钢桁架结构监理实施细则
- 预应力钢绞线张拉伸长量计算程序单端(自动版)
- 2022焊接大赛题库含答案
- 新建铁路晋豫段站前工程设计技术交底材料(站场)
- 物料管理入门练习作业答案
- 铁路货物运输品名分类与代码表
- 1000MW机组锅炉本体检修规程
评论
0/150
提交评论