- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
传智播客——课程文档
PAGE 1
集合
什么是集合
存储对象的容器,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式。
集合的出现就是为了持有对象。集合中可以存储任意类型的对象, 而且长度可变。在程序中有可能无法预先知道需要多少个对象, 那么用数组来装对象的话, 长度不好定义, 而集合解决了这样的问题。
集合和数组的区别
数组和集合类都是容器
数组长度是固定的,集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象数组中存储数据类型是单一的,集合中可以存储任意类型的对象。
集合类的特点
用于存储对象,长度是可变的,可以存储不同类型的对象。
数组的缺点
存储类型单一的数据容器,操作复杂(数组一旦声明好不可变)CRUD
集合的分类
集合做什么
1:将对象添加到集合
2:从集合中删除对象
3: 从集合中查找一个对象
4:从集合中修改一个对象就是增删改查
注意:集合和数组中存放的都是对象的引用而非对象本身
Java工程师对不同的容器进行了定义,虽然容器不同,但是还是有一些共性可以抽取最后抽取了一个顶层接口,那么就形成了一个集合框架。如何学习呢?当然是从顶层学起,顶层里边具有最共性,最基本的行为。具体的使用,就要选择具体的容器了。为什么? 因为不断向上抽取的东西有可能是不能创建对象的.抽象的可能性很大,并且子类对象的方法更多一些. 所以是看顶层,创建底层。那么集合的顶层是什么呢 叫做Collection
集合框架体系
|Collection: 单列集合
|List: 有存储顺序, 可重复
|ArrayList: 数组实现, 查找快, 增删慢
由于是数组实现, 在增和删的时候会牵扯到数组
增容, 以及拷贝元素. 所以慢。数组是可以直接
按索引查找, 所以查找时较快
|LinkedList: 链表实现, 增删快, 查找慢
由于链表实现, 增加时只要让前一个元素记住自
己就可以, 删除时让前一个元素记住后一个元
素, 后一个元素记住前一个元素. 这样的增删效
率较高但查询时需要一个一个的遍历, 所以效率
较低
|Vector: 和ArrayList原理相同, 但线程安全, 效率略低
和ArrayList实现方式相同, 但考虑了线程安全问
题, 所以效率略低
|Set: 无存储顺序, 不可重复
|HashSet
|TreeSet
|LinkedHashSet
| Map: 键值对
|HashMap
|TreeMap
|HashTable
|LinkedHashMap
为什么出现这么多集合容器,因为每一个容器对数据的存储方式不同,这种存储方式称之为数据结构(data structure)
注意 集合和数组中存放的都是对象的引用。
什么时候该使用什么样的集合
Collection
我们需要保存若干个对象的时候使用集合。
List
如果我们需要保留存储顺序, 并且保留重复元素, 使用List.
如果查询较多, 那么使用ArrayList
如果存取较多, 那么使用LinkedList
如果需要线程安全, 那么使用Vector
Set
如果我们不需要保留存储顺序, 并且需要去掉重复元素, 使用Set.
如果我们需要将元素排序, 那么使用TreeSet
如果我们不需要排序, 使用HashSet, HashSet比
TreeSet效率高.
如果我们需要保留存储顺序, 又要过滤重复元素, 那么使用LinkedHashSet
集合类(Collection)
Collection接口有两个子接口:
List(链表|线性表)
Set(集)
特点:
Collection中描述的是集合共有的功能(CRUD)
List可存放重复元素,元素存取是有序的
Set不可以存放重复元素,元素存取是无序的
java.util.Collection
| Collection 描述所有接口的共性
| List接口 可以有重复元素的集合
| Set 接口 不可以有重复元素的集合
2:学习集合对象
学习Collection中的共性方法,多个容器在不断向上抽取就出现了该体系。发现Collection接口中具有所有容器都具备的共性方法。查阅API时,就可以直接看该接口中的方法。并创建其子类对象对集合进行基本应用。当要使用集合对象中特有的方法,在查看子类具体内容。
查看api 文档Collection在在java.util 中(注意是大写Collection
您可能关注的文档
- 一带一路技术交流与合作平台 职教合作 中德青年农业实用人才交流项目德方学员来我院访问交流.docx
- 微生物技术 有害微生物的控制 过滤除菌.doc
- 医学生物化学基础及技术 2.聚丙烯酰胺凝胶电泳 电泳技术-3.聚丙烯酰胺凝胶电泳讲义.doc
- 医学影像设备构造与维修 容量保护电路课程设计 容量保护电路课程设计.docx
- 微信营销 微网站模式 认识微网站.doc
- 仪器分析 知识点2:离子色谱分析的原理 离子色谱分析样品前处理电子教案.doc
- 微信营销 微信营销评估指标 数据收集.doc
- 维修电工培训资源包 PLC编程训练实例 T-03-O-O-PLC编程实例-教材.doc
- 仪器分析技术 TCD检测器 2TCD检测器.doc
- 维修电工培训资源包 常见机床控制电路故障分析与维修 T-03-O-O-M7130平面磨床故障分析及排除.doc
- 涡流检测技术 任务1 涡流响应的主要影响因素 任务1 涡流响应的主要影响因素.doc
- 涡流检测技术 任务2 常规无损检测技术 常规无损检测技术.doc
- 移动产品规划与项目管理 Axure axure案例2.doc
- 移动产品规划与项目管理 用户体验 用户体验案例1.doc
- 涡流检测技术 任务2 检测线圈的分类(2) 任务2 检测线圈的分类(2).doc
- 移动电子商务 移动电子商务 移动电子商务教案_姚瑶.docx
- 涡流检测技术 任务2 涡流的应用 任务2 涡流的应用.doc
- 移动互联工程实训-2017 动画 单元教教学设计- 动画.doc
- 污染治理设施运行与维护 旋风除尘器的运行和维护 燃烧与大气污染.doc
- 移动互联软件测试-2017 自动化测试 自动化测试之“好用例、坏用例”.docx
最近下载
- 统编版高中语文选择性必修中册第二单元苦难与新生中国革命传统作品研习单元任务群(一)苦难与新生课件(共14张PPT).ppt VIP
- 100海上大型绞吸疏浚装备的自主研发与产业化.pdf VIP
- 电阻式传感器课件.pptx VIP
- 杭州市第三届景点景区讲解员服务技能大赛笔试题库.docx VIP
- JVC摄像机GR-DV5000AC用户手册.pdf
- 沙原隐泉 优秀剖析.ppt VIP
- 公文写作:决定.ppt VIP
- 增碳剂对球墨铸铁的孕育作用.pdf VIP
- 上汽通用别克-全新一代GL8-产品使用说明书-28T Avenir-SGM6522UAA3-2018年款别克全新一代GL8用户手册.pdf
- 杭州市第三届景点景区讲解员服务技能大赛笔试题库.pdf VIP
原创力文档


文档评论(0)