版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六单元Iterator迭代器Iterator接□方法Iterator使用增强for循环前面学习的Collection接口、Set接口和List接口,它们的实现类都没有提供遍历集合元素的方法,Iterator迭代器为集合而生,是Java语言解决集合遍历的一个工具。它提供一种方法访问集合中各个元素,而不暴露该集合的内部实现细节。6.3.1Iterator接口方法6.3.1Iterator接口方法Collection接口的iterator()方法返回一个Iterator对象,通过Iterator接口的两个方法即可实现对集合元素的遍历。下面列举了Iterator接口的三个方法:●booleanhasNext()判断是否存在下一个可访问的数据元素。●Objectnext()返回要访问的下一个数据元素。●voidremove()从迭代器指向的collection集合中移除迭代器返回的最后一个数据元素。6.3.2Iterator使用接下来我们通过《租车系统》,讲解集合中Iterator迭代器的使用。假设《租车系统》有如下的需求调整:(1)系统里可以有若干辆轿车和卡车供用户租用。(2)系统管理员可以遍历这个系统里所有的车辆。
(3)遍历时是轿车,则显示轿车品牌,是卡车,则显示卡车吨位,同时完整显示车辆信息。6.3.2Iterator使用importjava.util.*;importorg.unitthree.*;classTestZuChe{publicstaticvoidmain(String[]args){//创建HashSet集合,甩于存放车辆SetvehSet=newHashSet();//创建2个轿车对象、2个卡车对象,并加入到HashSet集合中Vehiclec1=newCar("战神","长城");Vehiclec2=newCar("跑得快","红旗");Vehiclet1=newTruck("大力士","5吨");Vehiclet2=newTruck("大力士二代","10吨");vehSet.add(cl);vehSet.add(c2);vehSet.add(tl);vehSet.add(t2);//使用迭代器循环输出Iteratorit=vehSet.iterator();while(it.hasNext()){System.out.println("***显示集合中元素信息***");Objectobj=it.next();if(objinstanceofCar){Carcar=(Car)obj;//调用Car类的特有方法getBrand()System.out.println("该车是轿车,其品牌为:"+car.getBrand());}else{Trucktruck=(Truck)obj;//调用Truck类的特有方法getLoad()System.out.println("该车是卡车,其吨位为:"+truck.getLoad());}//调用Vehicle类方法show()((Vehicle)obj).show();}}}
在该段代码中,通过Iterator接口的hasNext()方法判断集合中是否还有对象元素,再通过该接口的next()方法获取这个对象元素。然后通过instanceof运算符,判断这个对象元素是轿车还是卡车,并显示轿车品牌或卡车吨位,最后调用这两个类共有的Show()方法显示车辆全部信息。6.3.2Iterator使用6.3.3增强for循环从JDK1.5开始,提供了另一种形式的for循环,这就是增强for循环,或称为foreach循环。借助增强foi循环,可以用更简单的方式来遍历数组和Collection集合中的对象。6.3.3增强for循环importjava.util.*;publicclassTestForEach{Publicstaticvoidmain(String[]args){String[]StuAn={"王云","刘静涛","南天华","雷静"};//传统for循环遍历for(inti=0;i<stuArr.length;i++){System.out.println(stuArr[i]);}//增强for循环遍历for(Stringstu;stuArr){System.out.println(stu);}SetnameSet=newHashSet();nameSet.add("王云");nameSet.add("刘静涛");nameSet.add("南天华");nameSet.add("雷静");//迭代器遍历Iteratorit=nameSet.iterator();while(it.hasNext()){System.out.printb(it.next());}//增强for循环遍历for(Objectstu2:nameSet){System.out.println((String)stu2);}}}下面我们用增强for循环与传统for循环做个比较。举一个非常简单的案例,一个数组(或集合)中存了四个学生的姓名字符串,分别用传统for循环和增强for循环,逐个显示学生姓名.6.3.3增强for循环通过代码可以看出,JDK1.5增强for循环使得代码短小且精炼,在遍历数组主集合的情况下,更加方便。但增强for循环在使用时,也有下面一些局限性,使用时需要注意。(1)在用传统for循环处理数组时,可以通过数组下标进行一些过程控制,例如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年北京大学中国卫生发展研究中心徐进课题组科研助理招聘备考题库及答案详解参考
- 2026年中南大学机电工程学院非事业编制工作人员招聘备考题库附答案详解
- 2026年台州市律师协会招聘工作人员备考题库及答案详解1套
- 2026年山东鲁西国际陆港有限公司公开招聘备考题库及完整答案详解一套
- 2026年厦门市集美区三社小学产假顶岗教师招聘备考题库及答案详解(夺冠系列)
- 2026年广州医科大学附属口腔医院招聘备考题库(一)及完整答案详解1套
- 2026年漯河市科教文化艺术中心人才引进备考题库及参考答案详解
- 江西铜业集团产融控股有限公司(供应链金融)2026年度第二批次社会招聘备考题库参考答案详解
- 2025年第四批次第一次公开招聘备考题库及一套参考答案详解
- 幼师曲目考试题库及答案
- 环境影响评价报告公示:泰利丰瑞物业管理燃煤锅炉清洁能源改造环评报告
- 营造林工程监理规范(试行)
- 白切鸡的制作王文艳27课件
- 企业对外投资合同范例
- DG∕T 149-2021 残膜回收机标准规范
- 基于项目的温室气体减排量评估技术规范 钢铁行业煤气制化工产品 征求意见稿
- 2025连云港市灌云县辅警考试试卷真题
- 氟橡胶胶浆寿命的研究
- HGT20638-2017化工装置自控工程设计文件深度规范
- 东北抗联英雄人物智慧树知到期末考试答案章节答案2024年牡丹江师范学院
- 【课堂练】《声音》单元测试
评论
0/150
提交评论