Java SE 第七讲 - Java中的集合框架.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java SE 第七讲 Java中的集合框架 概述 容器类类库的用途是持有对象,所有的容器都只能保存对Object的引用。 Collection: 一组独立的元素 List: 必须保持元素特定的顺序 Set: 不能有重复元素 Map: 一组成对的键值对(key-value pair,key and value are all objects)对象。因此Map 可以返回所有键(key)组成的 Set,所有值(value)组成的Collection。 集合框架图 更多的时候我们只关心顶层的接口(interface)和具体的实现类(concrete class),而且不再推荐使用遗留的类(如Vector、Hashtable等)。可以将上图简化为右图: 容器中的对象都是Object 容器中只能容纳对象,不能容纳基本类型 在将对象加入容器的时候就丢失了类型信息 在使用容器中的元素前必须要做类型转换操作 Java SE的自动装箱(Auto-boxing)与拆箱(Auto-unboxing) 基本数据类型(primitive type)与对应的包装类(wrapper class)之间可以自动进行转换。 注意关于null引用的拆箱和相等性“==”的判断 容器中可以容纳基本类型 Java SE增加了自动拆装箱的特性后,容器中就可以容纳基本类型了。 把基本类型放入容器前自动装箱 从容器中取基本类型前自动拆箱 Java SE的泛型(Generic type) 泛型支持定义带有类型参数(Parameterized type)的类,这些参数由您在实例化时指定。泛型为提高大型程序的类型安全和可维护性带来了很大的潜力。 泛型在本质上是指参数化类型 操作参数化类型的类,接口或者方法被称作泛型,如泛型类或泛型方法。 限定容器中能持有的对象类型 Java SE增加范性机制后,就可以限定容器中能持有的对象类型。 对象放入容器后不会自动丢失类型信息 从容器中取对象不需要转型 类型安全,减少开发的复杂度 迭代器(Iterator) 遍历并选择序列中的对象。客户端程序员不关心序列底层的结构。 集合对象的iterator()方法要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素 。 使用next()获得序列中的下一个元素。而且只能向下移动 使用hasNext()检查序列中是否还有元素 使用remove()将上一次返回的元素从迭代器中移除 List 接口 次序是 List 最重要的特点;它保证维护元素特定的顺序 。 ArrayList,由数组实现的List。允许对元素进行快速随机访问,但是向List 中间插入与移除元素的速度很慢 。 LinkedList,对顺序访问进行了优化,向 List 中间插入与删除的开销并不大。随机访问则相对较慢 。 Set 接口 存入 Set 的每个元素都必须是唯一的。因为Set 不保存重复元素,加入 Set 的元素必须定义equals()方法以确保对象的唯一性。Set 接口不保证维护元素的次序 。 HashSet:为快速查找设计的Set。存入HashSet 的对象必须定义hashCode() 重载equals()方法时永远要重载hashCode()方法。否则的话会导致类与所有基于散列的集合一起使用时不能正常工作,这些集合包括HashSet、HashMap和Hashtable 。 Set 接口 java.lang.Object规范的约定 如果在应用程序执行期间,用于对象的equals()方法中的信息不被修改,那么对同一对象的多次调用,hashCode()方法总是返回相同的整数。这个整数不要求在同一应用程序的不同执行间保持一致 。 如果两个对象按照equals()方法是相同的,那么对这两个对象的任一个调用hashCode()方法,必须要产生同样的整数结果 如果两个对象根据equals()方法不相同,那么对这两个对象中的任一个对象调用hashCode()方法,不要求产生两个不同的整数结果。但是,为不相等的对象产生不同的整数结果可以提高hash表的性能 。 Set 接口 LinkedHashSet:具有 HashSet 的查询速度,同时使用链表维护元素的次序,使得看起来元素是以插入的顺序保存的。 SortedSet:保持次序的 Set,底层为树结构。使用它可以从Set中提取有序的序列 。 TreeSet是接口SortedSet的唯一实现类,SortedSet的意思是“按比较函数对元素排序”,而不是指“元素插入的次序”。插入到SortedSet中的元素必须实现java.lang.Comparable接口(或者能够被一个特定的Comporator接受);并且所有的元素必须必须可以相互比

文档评论(0)

fc86033 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档