- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 数据结构及常用算法 内容提要: 泛型(Generic) 数据结构中的接口 向量(Vector) 散列表(HashMap) 堆栈(Stack) 链表(LinkedList)5.1.1 普通类和泛型类的对比普通类:定义类时,不带参数实例成员的类型确定,每个类实例的数据成员类型固定方法成员的传入参数类型确定,返回值类型确定。抽象能力有限泛型类:以类型作为参数定义类。实例成员的类型可变,同一类的不同实例的数据成员类型可以不同方法成员的传入参数类型可变化,返回值类型也可变。增强代码重用率,具有类型检查功能,确保程序的安全性5.1.2泛型(Generic)所谓泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型将在声明变量、创建对象、调用方法时动态地指定。public interface ListE{ //在该接口里,E可以作为类型使用 //下面方法可以使用E作为参数类型 void add( E x); IteratorE iterator(); ...}续//ListString等同于如下接口public interface ListString extends List { //原来的E形参全部变成String类型实参 void add (String x); IteratorString iterator(); ...}注意:传入一个类型实参时可以动态地生成无数多个逻辑上的子类,但这种子类在物理上是不存在的。5.1.3 泛型的“菱形”语法ListString strList = new ArrayListString();MapString,Integer scores = new HashMspString,Integer();上面两条语句中的粗体字代码部分完全是多余的,从Java7开始,Java允许在构造器后不带完整的泛型信息,只要即可,Java可以推断尖括号里应该是什么泛型。把两个尖括号并排放在一起非常像一个菱形,这种语法也就被称为“菱形”语法。上面两条语句可以改写为如下形式:ListString strList = new ArrayList();MapString,Integer scores = new HashMap();5.1.4泛型的常规用法//定义泛型类时声明多个类型MutiOverClassT1,T2MutiOverClass:泛型类名称T1,T2为可能被定义的类型,在实例化对象时就可以指定多个类型MutiOverClassBoolean,Float = new MutiOverClassBoolean,Float();//定义泛型类时声明数组类型public class ArrayClassT{ private T[]array; public void SetT(T[] array){ this.array = array; } 续public T[] getT(){ return array; }public static void main(String [] args){ ArrayClassString a = new ArrayClassString(); String [] array = {成员1,成员2,成员3,成员4,成员5}; a.SetT(array); for(int i=0;ia.getT().length;i++){ System.out.println(a.getT()[i]); } }}可以在使用泛型机制时声明一个数组,但是不可以使用泛型来建立数组的实例。 常用的被泛型化的集合类在Java中集合框架已经都被泛型化了,可以在主方法中直接使用public MapK,V m = new HashMapK,V();语句创建实例,然后相应调用Map接口中的put()和get()方法完成填充容器或根据键名获取集合中具体值的功能。集 合 类泛 型 定 义ArrayListArrayListEHashMapHashMapK,VHashSetHashSetEVectorVectorE泛型与方法定义类比方法以值为参数, method(String str1,String str2 ),其中str1、str2的值可变。泛型以类型为参数,可用以下格式定义类 定义时:class GenericsJava<K,V>,K和V是类型变量,实例化时用具体类型取代实例化时: GenericsJava<Object, Integer> gj1 = new GenericsJava<Object, Integer> ();GenericsJava<Student, Double> gj2 = new GenericsJava< Student, Double > ();5.1.5 泛型的高级用法限制
您可能关注的文档
- 筏形基础防雷接地施工方案设计.doc
- 防腐、保温工程计算公式(刷油、防腐蚀、绝热工程).doc
- 防火员生产责任制考核记录.doc
- 房屋建筑工程常见质量通病和防治措施.doc
- 非标设备设计和评审流程.pptx
- 分数乘除法应用题专项训练2012.doc
- 分段计费问题课件.ppt
- 分子生物学考试复习总结题.doc
- 粉煤灰水泥开发.docx
- 福建省龙岩市2015年中考生物试题(word版包含答案).doc
- 2025年低空经济无人机飞行对生物多样性影响及生态补偿机制报告.docx
- 2025年工业螺丝刀采购行业市场动态与使用成本控制.docx
- 2025年生物基材料在家具纳米涂层应用趋势报告.docx
- 2025年生物基纸质包装材料应用前景报告.docx
- 3-6岁儿童健康成长评测指南.docx
- 2025年工业0数字孪生系统投资效益报告.docx
- 2025年(医疗器械与装备工程-产品设计)产品设计试题及答案.doc
- 医美机构2025年联合营销效果评估分析.docx
- 2025年老年智能护理机器人产品可靠性报告.docx
- 2025-2026学年小学科学一年级上册(2024)冀人版(2024)教学设计合集.docx
最近下载
- 《矿产资源_三率_指标要求 第 5 部分:金、银、铌、钽、锂、锆、 锶、稀土、锗》.pdf VIP
- 龙光集团丨纪凯婷人物介绍.pdf VIP
- 1访谈记录不忘初心方得始终.pdf VIP
- D-Z-T 0462.4-2023 矿产资源“三率”指标要求 第4部分:铜等12种有色金属矿产(正式版).docx VIP
- 无人机组装调试与检修-第五章-无人机系统调试.pptx VIP
- 无人机组装调试与检修-第四章-固定翼无人机系统组装.pptx VIP
- 无人机组装调试与检修-第二章-无人机装调工具与工艺.pptx VIP
- 无人机组装调试与检修-第一章-无人机系统概述.pptx VIP
- 卫星定位导航原理(哈尔滨工业大学)知到智慧树网课答案.docx
- T_CEIAESD 1005—2022_防静电不发火地坪施工与质量验收规范.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)