- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA编程基础课程 -300集(史上最全、最深、最细)ppt课件
注意: 1、泛型只能使用引用类型,不能基本类型 2、泛型声明时字母不能使用 静态属性|静态方法上 * 因为ListFruit、ListApple等都是List? extends Fruit的子类型。先假设传入的参数为为ListFruit,则第一段代码的三个“add”操作都是可行的;可如果是ListApple呢??则只有第三个“add”可以执行,可见,为了保护其类型的一致性,也是不能往list添加任意对象的,不过却可以添加null。 * 同理,传入ListApple 则第三行错误,不能list.add(new Fruit(“fruit”))为了保护类型的一致性,因为“? super Apple”可以是Fruit,也可以是Object,因无法确定其类型,也就不能往List? super Apple添加Apple的任意父类对象。 * //HashMap put源码分析 public?V?put(K?key,?V?value)??? {??? ?//?如果?key?为?null,调用?putForNullKey?方法进行处理?? ?if?(key?==?null)??? ?????return?putForNullKey(value);??? ?//?根据?key?的?keyCode?计算?Hash?值?? ?int?hash?=?hash(key.hashCode());??? ?//?有哪些信誉好的足球投注网站指定?hash?值在对应?table?中的索引?? ?????int?i?=?indexFor(hash,?table.length);?? ?//?如果?i?索引处的?Entry?不为?null,通过循环不断遍历?e?元素的下一个元素?? ?for?(EntryK,V?e?=?table[i];?e?!=?null;?e?=?e.next)??? ?{??? ?????Object?k;??? ?????//?找到指定?key?与需要放入的?key?相等(hash?值相同?? ?????//?通过?equals?比较放回?true)?? ?????if?(e.hash?==?hash??((k?=?e.key)?==?key??? ?????????||?key.equals(k)))??? ?????{??? ?????????V?oldValue?=?e.value;??? ?????????e.value?=?value;??? ?????????e.recordAccess(this);??? ?????????return?oldValue;??? ?????}??? ?}??? ?//?如果?i?索引处的?Entry?为?null,表明此处还没有?Entry??? ?modCount++;??? ?//?将?key、value?添加到?i?索引处?? ?addEntry(hash,?key,?value,?i);??? ?return?null;??? }??? * JAVA编程基础课程 -300集(史上最全、最深、最细) 加入 一起学JAVA 讲师:裴新 邮箱:laopei@ 泛型 本章概述 起因 起因:JDK1.4以前类型不明确 装入集合的类型都被当作Object对待,从而失去自己的实际类型。 从集合中取出时往往需要转型,效率低,容易产生错误。 方案:在定义集合的时候同时定义集合中对象的类型 作用: 模板:提高代码的重用率 安全:在编译的时候检查类型安全 省心:所有的强制转换都是自动和隐式的 概念 概念:泛型就是参数化类型。 适用于对多种数据类型执行相同功能的代码。 泛型中的类型在使用时指定。 泛型归根到底就是“模板”。 如:可拆卸刀头的螺丝刀 检查需要拧动的螺丝, 根据螺丝选择适合刀头 (一字、十字、星形), 将正确的刀头插入到螺丝刀柄上后, 您就可以使用螺丝刀执行完全相同的功能,即拧螺丝。 泛型主要适用在集合中 任意化 引出:学生成绩有三种情况 1、整数 2、小数 3、字符串 任意化: Object是所有类的根类, 但是具体类使用的时候;需要类型强制转换的 多态:Object可以接受任意类型。 缺点: 需要类型转换; 需要类型检查; 需要处理转换错误异常 泛型:使用泛型时,在实际使用之前类型就已经确定了,不需要强制转换。 任意化实例 Student 使用Object 代码片段 public class Student { private Object javase; public Student() { } public Student(Object javase) { this.javase =javase; } pub
文档评论(0)