Java程序设计--集合的总结学习.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lu Qiang, 2009 Hefei University of Technology , School of Computer and Information Page * / 38 集合类的总结学习 Java程序设计 集合所能做到的 我们需要在容器里面存储某个应用系统的当前的所有的在线用户信息,而当前的在线用户信息是时刻都可能在变化的。 也就是说,我们需要一种存储数据的容器,它能够自动的改变这个容器的所能存放的数据数量的大小。这一点上,如果使用数组来存储的话,就显得十分的笨拙。 假定一个购物网站,经过一段时间的运行,我们已经存储了一系列的购物清单了,购物清单中有商品信息。如果我们想要知道这段时间里面有多少种商品被销售出去了。那么我们就需要一个容器能够自动的过滤掉购物清单中的关于商品的重复信息。如果使用数组,这也是很难实现的。 集合所具有的优势 我们经常会遇到这种情况,我知道某个人的帐号名称,希望能够进一步了解这个人的其他的一些信息。也就是说,我们在一个地方存放一些用户信息,我们希望能够通过用户的帐号来查找到对应的该用户的其他的一些信息。 再举个查字典例子:假设我们希望使用一个容器来存放单词以及对于这个单词的解释,而当我们想要查找某个单词的意思的时候,能够根据提供的单词在这个容器中找到对应的单词的解释。如果使用数组来实现的话,就更加的困难了。 本章学习提示 集合框架中的接口 Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。 Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set。 List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。 Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。 集合框架中的实现类图 SortedSet Set List Map HashSet LinkedHashSet TreeSet ArrayList LinkedList SortedMap HashMap TreeMap ArrayList ArrayList:我们可以将其看作是能够自动增长容量的数组。 利用ArrayList的toArray()返回一个数组。 Arrays.asList()返回一个列表。 迭代器(Iterator) 给我们提供了一种通用的方式来访问集合中的元素 对List的view二种方式。一种是测量迭代元素的时间,另一种 测量使用toArray调用创建数组。最后得到结果:使用toArray调 用中创建的数组迭代元素的速度要比使用iterator的速度大约快 30%到60%。但如果将使用toArray方法创建数组的时间开销含 在内。则使用iterator实际上要快10%到20%,所以如果我们一 般不需要一个中间数组。则不需要创建它。而使用迭代的方式。 集合迭代器的工作原理 返回的元素 删除的元素 next() remove() next() List中不安全的操作 ListString list = new ArrayListString(); //定义一个List for(int i=0;i6;i++){ list.add(str+i); } //删除list中前面的str0,str1,str2。 private void unSafeDeleteTopByCount(int count) { //调用方法count传入值3 for (int i = 0; i count; i++) { list.remove(i); } } 什么意思呢,大家可以看一下上面的代码,如果运行的话,打印出的结果是: str1 str3 str5 为什么呢,当我们删除了index为0的元素str0后,由于List的size变化,index为0的元素会变为str1,而index为1的元素会变为str2,所以我们就得不到想要的结果了。 List中安全的删除操作 for (int i = count - 1; i = 0; i--) { list.remove(i); } for (int i = 0; i count; i++) { list.remove(0);

文档评论(0)

yan666888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档