版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六单元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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 43257.8-2026放射性物品运输容器安全试验方法第8部分:泄漏试验
- 输血相关循环超负荷临床诊治的专家共识(2026版)
- 护理技术中的移动医疗应用
- 护理新职工:信息技术与护理管理
- 护理专业护理教育与培训
- 福建省福州市2025-2026学年八年级下学期质量抽测生物试卷(有答案)
- 木刻水印雕刻版员安全知识竞赛评优考核试卷含答案
- 聚丁二烯装置操作工岗前生产安全水平考核试卷含答案
- 2026年新科教版高中高一化学上册第三单元氧化还原反应规律应用卷含答案
- 验房师安全文明考核试卷含答案
- 2026四川省成都广定发展集团有限公司招聘3人备考题库(含答案详解)
- 2026四川成都市公共交通集团有限公司招聘投资管理专员岗位备考题库附答案详解(b卷)
- 2026年普通高等学校招生全国统一考试语文模拟预测卷(附答案)(2026高考语文终极押卷)
- (完整版)旅游学概论期末试题(附答案)
- 2025年电工(中级)实操技能考核试题(附答案)
- 2025年广东省深圳市初二学业水平地理生物会考真题试卷(+答案)
- 2026年公立医院信息科工作人员招聘考试笔试试题(含答案)
- 园林绿养护安全培训内容
- 2026年深圳市创新投资集团有限公司校园招聘考试参考试题及答案解析
- 金属标牌行业现状分析报告
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
评论
0/150
提交评论