没有合适的资源?快使用搜索试试~ 我知道了~
java集合框架java集合框架.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 156 浏览量
2022-06-11
03:03:57
上传
评论
收藏 698KB DOC 举报
温馨提示
试读
47页
java集合框架java集合框架
资源推荐
资源详情
资源评论
文档标题
楼道
(LD)
小组
集合
版本号:1.0
作者:huangdos
日期:2006 年 6 月 06 日
Copyright©2005-2006, LD group, All Rights Reserved
文档标题
楼道
(LD)
小组
摘 要
摘要内容
Java 里面最重要,最常用也就是集会一部分了。能够用好集合和理解好集
合对于做 Java 程序的开发拥有无比的好处。本文详细解释了关于 Java 中的集
合是如何实现的,以及他们的实现原理。
关键字:
Collection , List ,Set , Map , 集合,框架。
Copyright©2005-2006, LD group, All Rights Reserved
文档标题
楼道
(LD)
小组
目 录
1 集合框架...............................................................................................2
1.1 集合框架概述....................................................................................................2
1.1.1 容器简介......................................................................................................2
1.1.2 容器的分类...................................................................................................4
1.2 COLLECTION........................................................................................................5
1.2.1 常用方法......................................................................................................5
1.2.2 迭代器..........................................................................................................8
1.3 LIST...................................................................................................................10
1.3.1 概述.............................................................................................................10
1.3.2 常用方法....................................................................................................10
1.3.3 实现原理....................................................................................................15
1.4 MAP...................................................................................................................20
1.4.1 概述.............................................................................................................20
1.4.2 常用方法....................................................................................................20
1.4.3 Comparable 接口........................................................................................24
1.4.4 实现原理....................................................................................................26
1.4.5 覆写 hashCode()..........................................................................................32
1.5 SET.....................................................................................................................35
1.5.1 概述.............................................................................................................35
1.5.2 常用方法.....................................................................................................35
1.5.3 实现原理....................................................................................................39
1.6 总结:集合框架中常用类比较..........................................................................41
2 练习......................................................................................................42
3 附录:排序..........................................................................................44
Copyright©2005-2006, LD group, All Rights Reserved
文档标题
楼道
(LD)
小组
集合
1 集合框架
1.1 集合框架概述
1.1.1 容器简介
到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们
就可以利用它们来做一些有意义的事情。
举例来说,假设要存储许多雇员,不同的雇员的区别仅在于雇员的身份证号。我们可
以通过身份证号来顺序存储每个雇员,但是在内存中实现呢?是不是要准备足够的内存来
存储 1000 个雇员,然后再将这些雇员逐一插入?如果已经插入了 500 条记录,这时需要插
入一个身份证号较低的新雇员,该怎么办呢?是在内存中将 500 条记录全部下移后,再从
开头插入新的记录? 还是创建一个映射来记住每个对象的位置?当决定如何存储对象的集
合时,必须考虑如下问题。
对于对象集合,必须执行的操作主要以下三种:
添加新的对象
删除对象
查找对象
我们必须确定如何将新的对象添加到集合中。可以将对象添加到集合的末尾、开头或
者中间的某个逻辑位置。
从集合中删除一个对象后,对象集合中现有对象会有什么影响呢?可能必须将内存移
来移去,或者就在现有对象所驻留的内存位置下一个“洞”。
在内存中建立对象集合后,必须确定如何定位特定对象。可建立一种机制,利用该机
制可根据某些搜索条件(例如身份证号)直接定位到目标对象;否则,便需要遍历集合中
的每个对象,直到找到要查找的对象为止。
前面大家已经学习过了数组。数组的作用是可以存取一组数据。但是它却存在一些缺
点,使得无法使用它来比较方便快捷的完成上述应用场景的要求。
1. 首先,在很多数情况下面,我们需要能够存储一组数据的容器,这一点虽然数组
可以实现,但是如果我们需要存储的数据的个数多少并不确定。比如说:我们需
要在容器里面存储某个应用系统的当前的所有的在线用户信息,而当前的在线用
户信息是时刻都可能在变化的。 也就是说,我们需要一种存储数据的容器,它能
够自动的改变这个容器的所能存放的数据数量的大小。这一点上,如果使用数组
来存储的话,就显得十分的笨拙。
2. 我们再假设这样一种场景:假定一个购物网站,经过一段时间的运行,我们已经
存储了一系列的购物清单了,购物清单中有商品信息。如果我们想要知道这段时
间里面有多少种商品被销售出去了。那么我们就需要一个容器能够自动的过滤掉
购物清单中的关于商品的重复信息。如果使用数组,这也是很难实现的。
3. 最后再想想,我们经常会遇到这种情况,我知道某个人的帐号名称,希望能够进
一步了解这个人的其他的一些信息。也就是说,我们在一个地方存放一些用户信
2
文档标题
楼道
(LD)
小组
息,我们希望能够通过用户的帐号来查找到对应的该用户的其他的一些信息。再
举个查字典例子:假设我们希望使用一个容器来存放单词以及对于这个单词的解
释,而当我们想要查找某个单词的意思的时候,能够根据提供的单词在这个容器
中找到对应的单词的解释。如果使用数组来实现的话,就更加的困难了。
为解决这些问题,Java 里面就设计了容器集合,不同的容器集合以不同的格式保存对象。
数学背景
在常见用法中,
集合(
collection
)
和数学上直观的
集(
set
)
的概念是相同的。集是
一个唯一项组,也就是说组中没有重复项。实际上,“集合框架”包含了一个 Set 接口和许
多具体的 Set 类。但正式的集概念却比 Java 技术提前了一个世纪,那时英国数学家
George Boole 按逻辑正式的定义了集的概念。大部分人在小学时通过我们熟悉的维恩图
引入的“集的交”和“集的并”学到过一些集的理论。
集的基本属性如下:
集内只包含每
项的一个实例
集可以是有限
的,也可以是
无限的
可以定义抽象
概念
集不仅是逻辑学、数学
和计算机科学的基础,对于商业和系统的日常应用来说,它也很实用。“连接池”这一概念
就是数据库服务器的一个开放连接集。Web 服务器必须管理客户机和连接集。文件描述
符提供了操作系统中另一个集的示例。
映射
是一种特别的集。它是一种对(pair)集,每个对表示一个元素到另一元素的单向映
射。一些映射示例有:
IP 地址到域名(DNS)的映射
关键字到数据库记录的映射
字典(词到含义的映射)
2 进制到 10 进制转换的映射
就像集一样,映射背后的思想比 Java 编程语言早的多,甚至比计算机科学还早。而 Java
中的 Map 就是映射的一种表现形式。
3
剩余46页未读,继续阅读
资源评论
oligaga
- 粉丝: 50
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功