




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章集合框架和泛型第一单元第1页/共37页本门课程目标学完本门课程后,你能够:运用Java常用API编写程序通过Java程序来操作文件开发基于多线程的程序开发Java服务器/客户端程序并实现通信定义并解析XML文件具有独立分析问题和解决问题的能力,能够胜任Java程序的开发第2页/共37页本章相关学习资源《集合框架及泛型》专题《使用Java高级实用技术》第1章《集合框架和泛型》第3页/共37页学习平台“Java高级特性”课程学生用书预习检查第4页/共37页至少说出Java集合框架中4个常用的接口或类。List接口和Map接口存储数据的方式各自是什么?简述泛型的作用。提问本章任务任务1:实现新闻标题查询功能任务2:使用泛型改进新闻标题查询功能第5页/共37页理解集合的概念及优势熟练使用各种集合类存储数据使用Iterator接口遍历集合泛型集合泛型接口、泛型类、泛型方法本章目标第6页/共37页点难点重点重点重串讲:Java集合框架Java集合框架位于java.util包中,提供了一套性能优良、使用方便的接口和类Java集合框架共有三大类接口:List、Set、Map第7页/共37页实线框表示实现类虚线框表示接口List接口存储一组不唯一,有序(插入顺序)的对象ArrayList类实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高LinkedList类采用链表存储方式。插入、删除元素时效率比较高集合框架3101串讲:List接口第8页/共37页串讲:ArrayList常用方法方法名说明booleanadd(Objectobj)将元素添加到集合中booleanadd(intindex,Objectobj)将元素obj插入到集合的index索引位置Objectget(intindex)返回集合中索引为index的元素intindexOf(Objectobj)返回元素在集合中出现的索引Objectset(intindex,Objectobj)将index索引位置的元素替换为obj元素Objectremove(intindex)删除并返回index索引位置的元素booleanisEmpty
()判断集合是否为空booleancontains(Objectobj)判断集合中是否包含obj第9页/共37页get(1)返回集合的第几个元素?提问上机练习第10页/共37页完成时间:15分钟共性问题集中讲解需求说明存储多个员工信息(包括工号、姓名、年龄,入职时间),逐条打印所有员工姓名,并输出员工的个数分析使用ArrayList存储数据元素个数不确定要求获得元素的实际个数按照存储顺序获取并打印元素信息练习串讲:LinkedList常用方法LinkedList同样提供了已学习的ArrayList方法方法名说明voidaddFirst(Objecto)将给定元素插入当前集合头部voidaddLast(Objecto)将给定元素插入当前集合尾部ObjectgetFirst()获得当前集合的第一个元素ObjectgetLast()获得当前集合的最后一个元素ObjectremoveFirst()移除并返回当前集合的第一个元素ObjectremoveLast()移除并返回当前集合的最后一个元素第11页/共37页上机练习第12页/共37页完成时间:10分钟共性问题集中讲解需求说明存储多个员工信息(包括工号、姓名、年龄,入职时间),当有新员工入职时,添加其信息;当有员工离职时,删除其信息分析插入、删除操作频繁时,可使用LinkedList来提高效率LinkedList额外提供对头部和尾部元素进行添加和删除操作的方法练习串讲:ArrayList与LinkedList对比ArrayList遍历元素和随机访问元素的效率比较高插入、删除等操作频繁时性能低下ArrayList和LinkedList分别在何时使用?LinkedList插入、删除元素时效率较高查找效率较低第13页/共37页问题串讲:Set接口Set接口Set接口存储一组唯一,无序的对象HashSet是Set接口常用的实现类HashSet允许集合元素值为null操作数据的方法与List类似,Set接口不存在get()方法第14页/共37页HashSetnewsTitleSet=newHashSet();NewTitlecar=newNewTitle(1,"汽车","管理员");//增加元素newsTitleSet.add(car);//遍历集合for(Objectobj:newsTitleList){NewTitletitle=(NewTitle)obj; System.out.println(title.getTitleName());}示例串讲:IteratorIterator接口表示对集合进行迭代的迭代器,专门实现集合的遍历方法:hasNext():判断是否存在另一个可访问的元素next():返回要访问的下一个元素System.out.println("使用Iterator遍历,分别是:");Iteratorit=list.iterator();while(it.hasNext()){Stringname=(String)it.next();System.out.println(name);}返回类型是Object当有元素时返回true第15页/共37页上机练习完成时间:10分钟共性问题集中讲解第16页/共37页需求说明使用Iterator遍历员工集合,打印员工姓名以及性别分析使用HashSet存储员工信息使用Iterator遍历HashSet集合练习串讲:HashMapHashMap是Map接口最常见的实现类HashMapmap=newHashMap();map.put("班长","小张");//添加的数据转换为Object类型map.put("学委","小李");map.put("体委","小王");Stringxiaozhang=(String)map.get("班长");需要强制类型转换第17页/共37页HashMap如何存储数据?有什么优势?存储一组成对的键-值对象,提供key(键)到value(值)的映射,通过key来索引key不允许重复value允许重复添加的对象将转换为Object类型串讲:HashMap的常用方法方法名说明Objectput(key,value)将相互关联的一个关键字(key)与一个值(value)放入该集合。Objectremove(Objectkey)从当前集合中移除与指定键相关的映射,并返回该键关联的旧值。如果key没有任何关联,则返回nullObjectget(Objectkey)获得与关键字key相关的值。如果该键不关联任何非null值,则返回nullbooleancontainsKey(key)判断集合中是否存在关键字keybooleancontainsValue(value)判断集合中是否存在值valuebooleanisEmpty()判断集合中是否有存在元素voidclear()清除集合中所有元素int
size()返回集合中元素的数量SetkeySet()获取所有键key的集合Collectionvalues()获取所有值value的集合第18页/共37页上机练习需求说明输入诗的名称,查询出诗的内容,当输入“exit”时退出程序分析创建“诗”类Poem,属性包括:名称、作者、内容使用HashMap存储诗的信息,将诗名称作为key,诗内容作为value完成时间:15分钟共性问题集中讲解第19页/共37页练习串讲:遍历HashMapkeySet()方法获取键的集合values()方法获取值的集合使用HashMap存储学生信息,学员英文名为键,学生对象为值遍历键集和值集演示示例:遍历HashMap第20页/共37页示例串讲:Collections类Collections和Collection不同,前者是集合的操作类,后者是集合接口Collections提供的静态方法sort():排序binarySearch():查找fill():替换第21页/共37页串讲:Collections类操作集合如何让打印出的结果是123?Collections类可以对集合进行排序、查找和替换操作实现一个类的对象之间比较大小,该类要实现Comparable接口重写compareTo()方法ArrayListlist=newArrayList();list.add(2);list.add(3);list.add(1);打印输出集合元素的结果是?演示示例:使用Collections排序第22页/共37页分析问题上机练习需求说明使用Collections类对员工集合按年龄进行排序并输出排序后的信息分析员工类实现Comparable接口调用Collections类的sort()方法完成时间:10分钟共性问题集中讲解第23页/共37页练习小结如何判断HashMap集合中是否存在某个关键字key?遍历ArrayList集合的方式有几种?第24页/共37页提问讲解:泛型将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性本质是参数化类型//创建学员集合ArrayList<Student>students=newArrayList<Student>();//创建学员类对象Studentstudent=newStudent();//创建诗类对象Poempoem=newPoem();//将两个对象添加到list集合中students.add(student);students.add(poem);由于创建时已指定Student类型,所以这里会报错第25页/共37页示例串讲:泛型集合泛型集合可以约束集合内的元素类型典型泛型集合ArrayList<E>,HashMap<K,V><E>、<K,V>表示该泛型集合中的元素类型泛型集合中的数据不再转换为Object第26页/共37页除了指定了集合中的元素类型外,泛型集合和之前学习的集合的用法完全一样串讲:ArrayList<E>和HashMap<K,V>ArrayList<E>第27页/共37页HashMap<K,V>//创建泛型集合ArrayList<NewTitle>newsTitleList=newArrayList<NewTitle>();//依次添加各类新闻标题newsTitleList.add(car);newsTitleList.add(test);Map<String,Student>students=newHashMap<String,Student>();students.put("Jack",student1);students.put("Rose",student2);限定集合元素的类型为NewTitle限定键的类型为String,值的类型为Student示例示例上机练习需求说明使用泛型集合改进查询诗的信息的上机练习,实现对诗的信息的存储和查询功能。第28页/共37页完成时间:10分钟共性问题集中讲解练习讲解:泛型的其他应用-泛型接口泛型接口就是拥有一个或多个类型参数的接口第29页/共37页publicinterface接口名<类型形参>{
方法名(类型形参类型形参实例);}publicinterfaceTestInterface<T>{publicTprint(Tx);}不具体指定数据类型,由使用此接口的用户决定数据类型示例语法讲解:泛型的其他应用-泛型类泛型类就是具有一个或者多个类型参数的类第30页/共37页publicclass类名<类型形参>{
方法名(类型形参类型形参实例){
方法执行体}}publicclassStudent<T>{publicTprint(Tx){//方法体}}不具体指定数据类型,由使用此接口的用户决定数据类型语法示例讲解:泛型的其他应用-泛型方法泛型方法就是带有类型参数的方法第31页/共37页修饰符<类型形参>返回值方法名(不指定|类型形参|正常参数,……){
方法体}public<T>voidfromArrayToList(T[]t,List<T>list) //执行方法}不指定具体的返回类型或者参数,由使用此方法的用户决定语法示例讲解:泛型应用需求说明定义泛型接口并添加获取字段方法,将类型参数做为此方法返回类型定义泛型类实现上述泛型接口,添加一个字段并将类型参数作为字段的类型,在构造函数中初始化此字段在main()方法中实例化泛型接口,调用获取字段方法并打印演示示例:泛型应用第32页/共37页讲解:多参数泛型类HashMap<K,V>属于多个参数的泛型类第33页/共37页两个类型形参,用逗号隔开classGenericDemo<T,V>{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基础护理死亡教育体系构建
- 战场救护知识培训
- 员工职业素养培训沟通交流
- 神经内科临床护理
- 浅析河南卫视“七夕奇妙游”美术元素运用
- 矿山开采施工与安全生产责任追究合同
- 电力输电线路架设与包工合同
- 茶叶产品线上线下联合营销委托协议
- 智能车棚施工与城市道路照明工程合同
- 房地产项目拆除及重建合作协议书
- 2025年云南省中考英语试卷真题(含标准答案及解析)
- 2025年广东省高考物理试题(含答案解析)
- 2025年宜宾市英语七下期末复习检测试题含答案
- 项目管理从立项到结项全解析
- 全国导游人员资格考试单科综合测试卷(科目一:政策与法律法规)
- 中医诊断学考点总结
- 国家开放大学学习网电大证券投资分析形考任务12345答案
- 拖车服务合同协议书模板
- 大件货物运输合同范本
- 2025-2030年全球与中国心理测验行业市场发展分析及发展机遇和风险研究报告
- 提高分级护理的巡视率
评论
0/150
提交评论