




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章容器 本章内容 容器的概念容器APICollection接口Iterator接口增强的for循环Set接口List接口Collections类Map接口自动打包 解包 容器的概念 容器API 容器API Collection接口 定义了存取一组对象的方法 其子接口Set和List分别定义了存储方式 Set中的数据对象没有顺序且不可以重复 List中的数据对象有顺序且可以重复 Map接口定义了存储 键 key 值 value 映射对的方法 Collection接口 Collection接口中所定义的方法 intsize booleanisEmpty voidclear booleancontains Objectelement booleanadd Objectelement booleanremove Objectelement Iteratoriterator booleanaddAll Collectionc booleanremoveAll Collectionc booleanretainAll Collectionc Object toArray Collection方法举例 importjava util publicclassTest publicstaticvoidmain String args Collectionc newArrayList c add hello c add newName f1 l1 c add newInteger 100 System out println c size System out println c 输出结果 3 hello f1l1 100 BasicContainer java Collection方法举例 容器类对象在调用remove contains等方法时需要比较对象是否相等 这会涉及到对象类型的equals方法和hashCode方法 对于自定义的类型 需要重写equals和hashCode方法以实现自定义的对象相等规则 注意 相等的对象应该具有相等的hashcodes 增加Name类的equals和hashCode方法如下 publicbooleanequals Objectobj if objinstanceofName Namename Name obj return firstName equals name firstName Inerator接口 所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象 Iterator对象称作迭代器 用以方便的实现对容器内元素的遍历操作 Inerator接口定义了如下方法 booleanhasNext 判断游标右边是否有元素Objectnext 返回游标右边的元素并将游标移动到下一个位置voidremove 删除游标左面的元素 在执行完next之后该操作只能执行一次 Iterator方法举例 importjava util publicclassTest publicstaticvoidmain String args Collectionc newHashSet c add newName f1 l1 c add newName f2 l2 c add newName f3 l3 Iteratori c iterator while i hasNext next 的返回值为Object类型 需要转换为相应类型Namen Name i next System out print n getFirstName 输出结果 f2f1f3 Iterator方法举例 Iterator对象的remove方法是在迭代过程中删除元素的唯一的安全方法 Collectionc newHashSet c add newName fff1 lll1 c add newName f2 l2 c add newName fff3 lll3 for Iteratori c iterator i hasNext Namename Name i next if name getFirstName length 3 i remove System out println c 输出结果 fff3lll3 fff1lll1 补充 JDK1 5增强的for循环 增强的for循环对于遍历array或Collection的时候相等方便示例EnhancedFor java缺陷 数组 不能方便的访问下标值集合 与使用Iterator相比 不能方便的删除集合中的内容总结 除了简单遍历并读出其中的内容外 不建议使用增强for Set接口 Set接口是Collection的子接口 Set接口没有提供额外的方法 但实现Set接口的容器类中的元素是没有顺序的 且不能重复 Set容器可以与数学中的 集合 的概念相对应 J2SDKAPI中所提供的Set容器类有HashSet TreeSet等 Set方法举例 Set方法举例 List接口 List接口是Collection的子接口 实现List接口的容器类中的元素是有顺序的 而且可以重复 List容器中的元素都对应一个整数型的序号记载中的外置 可以根据序号存取容器中的元素 J2SDK所提供的List容器类有ArrayList LinkedList等 Objectget intindex Objectset intindex Objectelement voidadd intindex Objectelement Objectremove intindex intindexof Objecto intlastIndexOf Objecto List方法举例 List常用算法 类java util Collections提供了一些静态方法实现了基于List容器的一些常用算法 voidsort List 对List容器内的元素排序voidshuffle List 对List容器内的对象进行随机排列voidreverse List 对List容器内的对象进行逆序排列voidfill List Object 用一个特定的对象重写整个List容器voidcopy Listdest Listsrc 将srcList容器内容拷贝到destList容器intbinarySearch List Object 对于顺序的List容器 采用折半查找的方法查找特定对象 List常用算法举例 Listl1 newLinkedList Listl2 newLinkedList for inti 0 i 9 i l1 add a i System out println l1 Collections shuffle l1 随机排列System out println l1 collections reverse l1 逆序System out println l1 Collections sort l1 排序System out println l1 System out println Collections binarySearch l1 a5 折半查找 输出结果 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a1 a4 a2 a3 a7 a9 a6 a8 a0 a5 a5 a0 a8 a6 a9 a7 a3 a2 a4 a1 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 5 如何选择数据结构 衡量标准 读的效率和改的效率Array读快改慢Linked改快读慢Hash两者之间 Map接口 实现Map接口的类用来存储键 值对 Map接口的实现类有HashMap和TreeMap等Map类中存储的键 值对通过键来标识 所以键值不能重复 Objectput Objectkey Objectvalue Objectget Objectkey Objectremove Objectkey booleancontainsKey Objectkey booleancontainsValue Objectvalue intsize booleanisEmpty voidputAll Mapt voidclear Map方法举例 Auto boxing unboxing 在合适的时机自动打包 解包自动将基础类型转换为对象自动将对象转换为基础类型TestMap2 javaTestArgsWords java JDK1 5泛型 起因 JDK1 4以前类型不明确 装入集合的类型都被当作Object对待
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 腾讯传统活动方案
- 食堂环保活动方案
- 国画竹子考试题及答案
- 高处作业考试题及答案
- 企业资产管理台账记录工具
- 难忘的启蒙老师写人作文5篇范文
- 放射肿瘤考试题及答案
- 防汛应急考试题及答案
- 质量管理体系文件建立工具箱
- 农村土地开发利用联合协议
- 第8课《网络新世界》第一课时-统编版《道德与法治》四年级上册教学课件
- 2025年审计部招聘考试模拟题及答案详解
- 2025年招聘市场年中洞察报告-瀚纳仕
- Bowtie安全分析培训课件
- 退役军人优抚政策课件
- 财务遴选笔试题及答案
- (2025秋新版)人教版二年级数学上册全册教案(教学设计)
- 六年级上册音乐课教案
- 肿瘤病人疼痛评估与干预策略
- 计算机视觉技术课件
- 大学书法教学课件
评论
0/150
提交评论