Java程序设计基础 高职软件专业 王路群第八章 集合和泛型.pptVIP

Java程序设计基础 高职软件专业 王路群第八章 集合和泛型.ppt

  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 Java程序设计基础 大连理工大学出版社 第八章 集合和泛型 8.2 泛型 8.1 集合类 8.1 集合类 集合是一种数据结构,可以包含其他对象的引用。集合接口声明的是可以对每种集合类型所执行的各种方法,集合的实现类以特殊的方式执行这些方法。 Java集合框架分为两类,以Collection为接口的元素集合类型,以Map为接口的映射集合类型。 Collection类型又分为两大类Set和List,Collection接口包含大量方法用于添加、删除、比较集合中的元素,Collection也可以转换成数组。他们都属于java.util包。 8.1 集合类(续) Set集合的特征:就是元素无重复且是无序,所以Set接口以及实现类没有按下标进行添加、删除、访问的方法。 Set的实现类有HashSet、TreeSet以及子类LinkedHashSet,这三个类是非线程安全的。TreeSet是基于树结构的集合,LinkedHashSet具备按照插入先后顺序访问的功能,HashSet访问元素的顺序是不确定的,TreeSet的访问顺序是按照树接口的顺序访问。 8.1 集合类(续) Map的实现类有HashMap、IdentityHashMap、WeakHashMap、TreeMap,以及LinkedHashMap子类,这些类都是非线程安全的,WeakHashMap是一种改进的HashMap,如果一个key不再被外部所引用,那么该key可以被GC回收。HashTable是线程安全的,HashTable不能插入null空元素。 8.1 集合类(续) 迭代器Iterator定义了对集合的通用访问方法,Iterator接口有三种基本方法:E next( ),boolean hasNext( ),void remove( ),代码结构如下: Iterator iter = clt.iterator( ); while (iter.hasNext( )) { Object obj = iter.next( ); //对obj进行操作 } 8.1 集合类(续) List接口是一种能包含重复元素的有序集合,与数组一样,List的第1个元素的序号也是0。除了从Collection中继承的方法外,List还提供了一些方法,用于操作所包含的元素。 List的实现类有ArrayList、LinkedList,这两个都是非线程安全的,Vector是线程安全的List实现类,Stack是Vector的子类。 8.1 集合类(续) 在ArrayList的前面或中间插入数据时,必须将其后的所有数据相应的后移,花费较多时间,所以,当程序添加元素主要是在后面,并且需要随机地访问其中的元素时,优先使用ArrayList会得到比较好的性能。 访问LinkedList中的某个元素时,就必须从链表的一端开始沿着连接方向一个一个元素地去查找,直到找到所需的元素为止,但在添加元素到原有元素中间时效率很高,所以,当程序需要经常在指定位置添加元素,并且按照顺序访问其中的元素时,优先使用LinkedList。 8.1 集合类(续) Set接口是一种无重复元素的集合。集合框架中包含多种Set实现类,主要为HashSet、TreeSet、SortedSet及LinkedHashSet。就常用方法而言,Set接口与Collection接口基本一致。 HashSet类是将元素存储在散列表中,适合用于不需要有序的元素序列,并能实现快速查找特定元素。如果想要提高HashSet的性能,可以指定HashSet中元素的个数;如果大约知道HashSet中最终会插入多少元素,可以把元素个数设置为其值的1.5倍;如果元素过多,将导致HashSet检索性能下降。 8.1 集合类(续) TreeSet将元素存储在树中,但元素按有序方式存储,可以按任何次序向TreeSet中添加元素,但遍历TreeSet时,元素出现的序列是有序的。在TreeSet中插入元素的效率要低于在HashSet中插入元素,但比把元素插入到数组或链表的合适位置要快。 SortedSet接口用于按照排好顺序元素的集合,排序方式可以是元素的自然顺序(如数字按升序排列),也可以是由Comparator指定的顺序 8.1 集合类(续) 集合是一种可以快速找到已存在元素的数据结构,但通常进行元素查找时,是通过某些关键信息来查找与之相关的对象,映射类是解决此类问题的数据结构之一。映射类储存的数据是“键/值”对,将“键”与“值”关联起来,给出键就可以查找到与之相关的值。 8.2 泛型 泛型是在Java 1.5中引入的新特性,在此之前,Java通过对类型Object的引用来实现参数类型的“任意化”,特点则是需要进行显式地强制类型转换,但

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档