




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 18 天集合对象 3第 18 天授课内容1、泛型的引入和体现(掌握泛型的使用及书写)2、泛型的简单应用(掌握泛型的书写)3、泛型类的使用 (会书写泛型类)4、方法上的泛型 (会书写泛型方法)5、泛型接口(会书写泛型接口,了解泛型的传递)6、泛型的通配符 (掌握)7、集合框架-Map 集合8、Map 集合方法介绍1、泛型的引入和体现案例:向集合对象中,字符串,并输出集合中所字符串的长度在开发中,向集合中添加的元素,是有可能用户自己录入,在用户录入时就有可能存在录入的数据不是字符串解决方案:1、使用 instanceof 判断,避免发生 ClassCastException 异常2、在 Jdk
2、1.5 后,出现了一种新的技术可以解决问题:泛型在集合中可以多种类型的元素,但是因为存在多种不同类型,就会产生的数据发生转换异常,此时就造成数据不安全性泛型:用来规范(约束)集合中所的类型。(当集合中的只某种类型时泛型就可以起到作用)回顾数组:结论:泛型是属于编译时期使用的技术泛型的使用?注意:中所的泛型只能是类型案例:使用泛型解决之前程序中注意:在定义泛型时,等号两边的泛型参数必须属于同一种类型案例:泛型的体现小结:泛型的好处:1、 提高了集合中数据的安全性2、 把运行时可能发生的异常,转到编译时期,作为编译错误处理3、 省略了强制类型转换的书写2、泛型的简单应用需求:向集合中添加学生对象,
3、要求按照学生的进行从小到大排序3、泛型类的使用泛型类:在书写的类上使用泛型案例:定义一个工具类,在工具类有一个成员,可以对这个成员进行操作(赋值、取值)解决方案:在 Tools 类中使用泛型技术4、方法上的泛型方法上使用泛型的格式:修饰符号 返回值类型 方法名(泛型)例:public voidmethod(T t)案例:方法上的泛型另一种写法: 在类写两个泛型参数5、泛型接口泛型接口:在定义接口时使用泛型技术案例:泛型接口的应用问题:子类如果继承父类时,在继承中父类也没有明确泛型类型时,还有泛型传递吗?肯定有。小结:书写在类上的泛型,称为泛型类例: classMyClass书写在方法上的泛型,
4、称为泛型方法例: public void method(X x)书写在接口上的泛型,称为泛型接口例:erfaceerA 在子类实现接口或继承父类时,如果接口或父类没有明确泛型的类型时,父类上的泛型会传递给子类例: class Child extends FatherclasserImplimplementser回顾:泛型:用来约束集合中泛型的使用:的类型。List集合对象= new 集合类();List 集合对象 = new 集合类();使用泛型的好处:1、 提高了集合中数据的安全性2、 把运行时发生的异常转为编译期错误处理3、 省略类型的强制转换在类上定义泛型,称为泛型类; 在方法上定义泛型
5、称为泛型方法;在接口上定义泛型称为泛型接口泛型传递: 当子类继承或实现父类/接口时,在父类/接口上没有明确泛型的参数类型,此父类/接口上泛型的会传递给子类(子类就具备了父类或接口上的泛型)6、泛型的通配符6.1泛型中通配符的使用泛型是用来约束集合中元素类型案例 1:向相同的集合中,相信相同类型的元素案例 2:向不同的集合中,相同类型的元素案例 3:向不同集合中,不同的类型的对象。:Student、Worker想要解决以上程序中存在泛型的通配符: ?,需要使用泛型技术中的通配符:?表示任意类型6.2通配符的限定案例:向不同的集合中,只能Student 和Worker在使用泛型中的通配符时,可能结
6、合 java 面通配符的限定:象中的特征,给?添加约束范围:上限:?下限:例:?只能是的子类或super子类例:?只能是 Student 的父类或 Student案例:使用通配符的限定解决以上程序中问题小结:泛型的通配符:通配符的限定:?表示任意类型上限:?下限: super 子类7、foreach 循环 & Enumeration7.1foreach 循环在学习数组和集合时,对于带有角标的数组和集合,可以利用角标遍历对于没有角标可用的集合对象,使用迭代器对象遍历从 JDK1.5 开始,提供了一种新的遍历方式:foreach 循环(高级 for 循环)foreach 循环的格式:也是使用 fo
7、r 关键字for(容器中元素的类型 变量/: 容器)foreach 循环就是为了简化 Iterator 遍历的 (foreach 也只是遍历,不去增删操作)案例:数组中的 foreach案例:集合中的 foreach注意:不是所有的集合都可以被 foreach 遍历的。只能实现 Iterable 接口才可以被 foreach遍历结论:在使用 foreach 时,通常只是用来遍历容器中的元素7.2Enumeration案例:Enumeration 的应用8、集合框架:Map 集合8.1Map 集合介绍在之前,已经学习过了 Collection 集合下相关集合类,而在使得 Collection 集
8、合元素时,一次只能一个元素对象。例: List list = new ArrayList();list.add(“元素”);/只能一个对象在开发中,会存在需要两个对象的情况:一日0 -1-解决方案:可以使用查表法(不通过集合对象)另一种需求:“Sunday”-“日”“Monday”-“一”在集合框架体系中,存在一种集合:Map。Map 集合在元素时,可以一次两个对象通过查阅 API: 1、 Map 集合中2、 Map 集合中所3、 Map 集合中所的是一对对象(两个对象:一个是键, 一个值)的对象是有对应关系(的键,不能有重复值关系)4、 Map 集合中的键和值,属于一一对应关系在 Map 集
9、合中的,键表示 K(Key), 值表示 V(Value)。Key 和 Value解决方案:使用两个集合分别:Sunday Monday日一集合 1:“Sunday” “Monday”集合 2:“日”“一”问题:怎么通过英文名获取实际的中文?index = 集合 1 . indexOf(“Sunday”); Stringk = 集合 2 . get(index);使用以上方案可以解决问题,但是存在弊端:1、 两个集合中所的元素必须是相同角标 (在不同角标,就会出现数据错误)2、 书写麻烦。 在时,需要使用两个集合分别不同的数据另一种解决方案: 使用两个集合分别:0、1; Sunday、Monda
10、y小结:Map 集合是用来两个对象的集合,的是 Key 和 Value 对象的关系Collection 集合只能一个对象,称为单列集合双列集合:是由两个单列集合组成,可以同时两个对象8.2Map 集合的基本使用Map 集合中常用方法介绍:添加方法: Objectput(K key,V value)向集合中Key 和 Value 对象在向 Map 集合中对象时,会先拿 key 对象去 Map 集合中遍历,查找是否有相同的 Key 元素存在,如果没有相同的 Key 元素存在,则把 Key 和 Value一起到Map 集合中,并返回null ; 如果有相同的Key 元素存在,会把Value对象覆盖到
11、原有 Value 上,并返回旧的 Value 对象删除方法:Objectremove(K key)从集合中删除 key 和 value 对象根据给定的Key 对象,去 Map 集合中删除相同的Key,以及 Key 所对应的Value,并返回被删除的 Value 对象。 如果 Map 集合中没有存在指定的 Key 元素,则删除不成功,返回 null修改方法:put(K key,V value)获取方法:Objectget(K key) 根据key 获取 Map 集合中的对应 key 的 value 值根据给定的 key 去 Map 集合中获取对应 Key 的 Value 元素,如果 Map 集合
12、中没有指定的 Key 存在,则返回 null其它方法:containsKey(K key)根据给定的 Key 元素,判断集合是否有存在存在Key 元素则返回 truecontainsValue(V value) 根据给定的 value 元素,判断集合是否有存在案例:Map 集合的简单使用Map 集合使用时的特点:是利用 Key 来操作集合中的所的数据的9、Map 集合方法介绍9.1Map 集合:keySet()方法Map 集合中Key 和 Value 是使列集合。双列集合中包含了两个单列集合思考:既然是两个单列集合了,那么能不能获取到其中一个单列集合呢?可以。 Key 元素时使用一个单列集合,
13、Value 元素时使用另一个单列集合问题:Key 元素在时应该使用哪一个集合作为呢?思考:Map 集合中的 Key 元素特点?Map 集合中的 Key 不能有重复值结论:Map 集合中的 Key 元素的使用 Set 集合获取 Map 集合中的所有的 Key 元素对象:案例:使用 keySet()获取 Map 集合中所有的 Key 元素注意:Map 集合本身不具备 foreach 遍历方式。原因:没有实现 Iterable 接口Map 集合本身不能直接进行遍历(只能获取 Map 集合中的单列集合,遍历单列集合)9.2Map 集合:entrySet()方法entrySet 方法:用来获取 Map
14、集合中所的关系关系:key-value 的对应关系 (其实就是一对 Key-Value)关系类型:Mntry(Entry 中的就是 Key-Value)案例:Map 集合中的 entrySet 方法9.3Map 集合:values()方法values()方法: 用来获取Map 集合中的所有的 value 元素案例:Map 集合的 values()方法小结:课后作业前言作业:1, 整理当天讲解的知识点(按着重点去整理)2, 把课堂上所有的代码全部练遍(学习到编码的后,自己书写)提示:建议先练习重点知识点的代码1、阅读以下代码,并给出正确(B)A、执行完后,list 大小为 4B、程序运行报错C、执行完后,list 大小为 3D、执行完后,list 大小为 52、阅读以下程序,根据需求在空置补全代码需求 1:pr方法中的参数只能是 List 集合,而 List 集合中只能的子类对象填补位置 1:List填补位置 2:? extends需求 2:pr方法中的参数可以是 List 集合也可以是 Set 集合,而集合中的对象却只能是 Student 或填补位置 1:Collection对象填补位置 2:? super Student3、统计一个字符串中每个字符的出现次数。提示:使用 map 集合完成,字符串中的字符作为 map 集合的 k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽农业大学《孟荀比较研究》2023-2024学年第二学期期末试卷
- 公司产品价格调整通知公告
- 工地噪音标准
- 第15课 明朝的统治 教案2024-2025学年七年级历史下册新课标
- 屋面喷漆改造施工方案
- 消火栓防撞柱施工方案
- 专项施工方案动画视频
- 2025年高考历史风标训练卷2(含解析)
- 文物清除水锈施工方案
- 5年级下册语文书第4课批准
- 2024年湖南有色金属职业技术学院单招职业技能测试题库完美版含答案解析
- 运输车辆安全培训试题及答案
- 机动车燃油公告查询
- 办公设备(电脑、一体机、投影机等)采购 投标方案(技术方案)
- 【真题】2023年南京市中考语文试卷(含答案解析)
- 小班儿歌《迎春花》课件
- 老旧住宅小区加装电梯施工组织方案
- 查干淖尔一号井环评
- 统一身份认证管理平台介绍
- 2021年安徽省公务员录用考试《行测》真题及答案
- 光伏车棚设计方案
评论
0/150
提交评论