- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《《Java高级程序设计》第10章[泛型]理论课件》.ppt
中国十大品牌IT教育机构 泛型 《Java高级程序设计》第10章 目 标 掌握Java SE的泛型原理 使用泛型集合API操纵对象数据 为什么需要泛型 在Java SE 5.0以前操作集合的缺点: 从集合中取出对象,需要执行类型转换操作: 由于没有类型检查,可以向集合添加任意对象,例如添加一个文件对象,但get方法取出的File对象转换为String会产生运行错误: ArrayList files = new ArrayList(); . . . String filename = (String) files.get(0); files.add(new File(. . .)); 基于泛型的解决方案 泛型提供了类型参数 只能将String类型对象存入集合,不能存储“大象”,“File”等 编译器可以发现如下错误 取出对象的类型为String,无需执行类型转换 ArrayListString files = new ArrayListString(); String filename = files.get(0); files.add(new File(. . .)); 精简代码 错误! 定义一个泛型类 Pair类具有两个成员,类型待定 使用private T first表示first的类型为参数T public class PairT { private T first; private T second; public Pair() { first = null; second = null; } public Pair(T first, T second) { this.first = first; this.second = second; } public T getFirst() { return first; } public T getSecond() { return second; } public void setFirst(T newValue) { first = newValue; } public void setSecond(T newValue) { second = newValue; } } 实现通用的求极值算法 编写一个泛型方法,能够对数组求最大值和最小值 class ArrayAlg { public static T extends Comparable PairT minmax(T[ ] a) { if (a == null || a.length == 0) { return null; } T min = a[0];T max = a[0]; for (int i = 1; i a.length; i++) { if (pareTo(a[i]) 0) {min = a[i];} if (pareTo(a[i]) 0) { max = a[i];} } return new PairT(min, max); } } 大 小 大 小 使用泛型方法 创建一个日历的数组,求出最大和最小的日期 PairGregorianCalendar mm 使用GregorianCalendar为PairT 传递类型参数 Java.util.GregorianCalendar实现了接口java.lang.ComparableT GregorianCalendar[ ] birthdays = { new GregorianCalendar(1906, Calendar.DECEMBER, 9), new GregorianCalendar(1815, Calendar.DECEMBER, 10), new GregorianCalendar(1903, Calendar.DECEMBER, 3), new GregorianCalendar(1910, Calendar.JUNE, 22), }; PairGregorianCalendar mm = ArrayAlg.minmax(birthdays); System.out.println(min = + mm.getFirst().ge
您可能关注的文档
- 《Touch_On_Lens_(one_glass_solution)》.ppt
- 《Toyota's Meltdown Lessons for Pharma on its Lean Journey》.doc
- 《Tracepro stary light》.ppt
- 《TracePro_表面光源生成器的使用实例1-获取LED光谱数据》.doc
- 《Tracking rectangular and elliptical extended targets using laser measurements》.pdf
- 《Traffic Light》.doc
- 《Trap Level Spectroscopy in Amorphous Semiconductors-0》.pdf
- 《Trends》.pdf
- 《Trespass to land and chattels 12-13》.ppt
- 《Tropical responses to eustatic sea level change》.pdf
文档评论(0)