day12-集合.pdfVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
day12-集合

集合(List 与 Set) 1、集合的由来: 对象用于封装特有数据的,对象多了需要存储,如果对象的个数不确 定,就使用集合容器进行存储。 特点:用于存储对象的容器,集合的长度是可变的,集合中不能存储基 本数据类型的值。 2、集合体系的由来: 集合容器因为内部的数据不同,有多种具体的具体容器,不但的向上抽 取,就形成了集合框架。下面是集合框架的体系图 一 、Collection 集合 添加 Boolean add(Object obj)【添加成功,返回 true,失败返回 false】 Boolean addAll(Collectioncol)【将一个集合添加到另外一个集合中】 删除 Boolean remove(Objectobj) Boolean removeAll(Collectioncoll) 例如:a.removeAll(b) 如果存在相同的元素,返回 true,此时 a 中将返 回移除相同元素后的集合。 void clear()【清空集合】 判断 Booleancontains(Object obj) Boolean containsAll(Collectioncoll) Boolean isEmpty() 【判断集合中是否有元素,即是否为空】 获取 intsize():获取集合的长度 Iterator iterator()取出集合中的元素【迭代器】 因为每个集合都有取出、判断集合还有没有下一个 对象的属性,或者移除 集合里面的对象的方法,按照面向对象的思想应该将这些方法定义到集合体系 的顶层中,让其子类去实现他,但是每个子类中的数据结构不同,而在操作的 时候是操作集合内部的数据,所以我们应该内部去实现他,这时我们应该使用 内部类,有因为每个集合都具有这样的功能,所以我们向上抽取为一个接口, 让内部类去实现他,对于使用者而言,具体的实现不重要,只要通过容器 获取到该实现迭代器对象即可。让对象去完成取出等相关的动作。 此方法在现实中的经典案例:商店的抓烟或者抓布娃娃的那个机器,那 个爪子就是我们要获取的迭代器对象。 其他的方法 booleanretainAll(Collectioncoll):【返回交集】 例如:a.retainAll(a1); 假如 a 和 a1 中有相同的对象,则返回 true,此时 a 中的对象是他们公用的,如果没有,则返回 false。 Object[]toArray(): 将集合转成数组。 TT [] toArray(T[]a) 返回包含此collection中所有元素的数组;返 回数组的运行时类型与指定数组的运行时类型相同。 4、集合的小弟之 List 特点:有序(指的是存入和取出的顺序一致,队列模式),元素都有索 引(角标),元素可以重复。它具有自己的迭代器 ListIterator,可以进行操作 其中,hasPrevious()表示有没有前面一个,那个 hasNext 是又没有下 一个。 5、List 的实现类 Vector:内部是数组数据结构,是同步的,增删快,查询都很慢,因为 他需要同步 ArrayList :内部是数组数据结构,是不同步的,代替了 Vector,查询 的速度很快,可以直接通过角标查询,因为你数组结构,所以在增加或者删除 某一元素时,要重新对数组的顺序改变,所以增删慢。50%的增长 LinkedList:内部是链表数据结构,是不同步的,增删元素的速度很 快。因为是链表结构,元素与元素之间是通过记录下个元素的地址连接起来 的,所以在查询的时候以此的询问,比较慢,但是增删的时候可以直接将下个 元素的地址给他就 OK 了。例如火车,查询是一个一个的向下面询问的方式查 找元素。 Arraylist 和 linkedlist 的区别 因为 Arraylist 是数组结构可以通过角标操作集合里面的元素,但是 linkedlist 是链表结构只能操作头和尾上的元素。但是有人会问?List 集合不是 有序的吗?此时的有序是想相对于存入和取出是一致的。怎样放就怎样取, ArrayList 是连续的空间,而 linke

文档评论(0)

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

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

1亿VIP精品文档

相关文档