没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
14页
既然您已经具备了一些集的理论,您应该能够更轻松的理解“集合框架”。 “集合框架”由一组用来操作对象的接口组成。不同接口描述不同类型的组。 在很大程度上,一旦您理解了接口,您就理解了框架。 虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。框架接口层次结构如下图所示。 有的人可能会认为 Map 会继承 Collection。 在数学中,映射只是对(pair)的集合。但是,在“集合框架”中,接口 Map 和 Collection 在层次结构没有任何亲缘关系,它们是截然不同的。这种差别的原因与 Set 和 Map 在 Java 库中使用的方法有关。Map 的典型应用是访问按关键字存储的值。它支持一系列集合操作的全部,但操作的是键-值对,而不是单个独立的元素。因此 Map 需要支持 get() 和 put() 的基本操作,而 Set 不需要。此外,还有返回 Map 对象的 Set 视图的方法:
资源推荐
资源详情
资源评论
介绍
第 1 页(共
8 页)
既然您已经具备了一些集的理论,您应该能够更轻松的理解“集合框架”。 “集合框架”由一组用来操
作对象的接口组成。不同接口描述不同类型的组。 在很大程度上,一旦您理解了接口,您就理解
了框架。 虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;
因此,允许您更改基本的数据结构而不必改变其它代码。框架接口层次结构如下图所示。
有的人可能会认为 Map 会继承 Collection。 在数学中,映射只是对(pair)的集合。但是,在
“集合框架”中,接口 Map 和 Collection 在层次结构没有任何亲缘关系,它们是截然不同的。这
种差别的原因与 Set 和 Map 在 Java 库中使用的方法有关。Map 的典型应用是访问按关键字存储
的值。它支持一系列集合操作的全部,但操作的是键-值对,而不是单个独立的元素。因此 Map 需
要支持 get() 和 put() 的基本操作,而 Set 不需要。此外,还有返回 Map 对象的 Set 视图的
方法:
Set set = aMap.keySet();
用“集合框架”设计软件时,记住该框架四个基本接口的下列层次结构关系会有用处:
Collection 接口是一组允许重复的对象。
Set 接口继承 Collection,但不允许重复。
List 接口继承 Collection,允许重复,并引入位置下标。
Map 接口既不继承 Set 也不继承 Collection。
让我们转到对框架实现的研究,具体的集合类遵循命名约定,并将基本数据结构和框架接口相结合。
除了四个历史集合类外,Java 2 框架还引入了六个集合实现,如下表所示。关于历史集合类如何
转换、比如说,如何修改 Hashtable 并结合到框架中,请参阅历史集合类。
接口 实现 历史集合类
Set HashSet
TreeSet
List ArrayList Vector
LinkedList Stack
Map HashMap Hashtable
TreeMap Properties
这里没有 Collection 接口的实现。历史集合类,之所以这样命名是因为从 Java 类库 1.0 发行
版就开始沿用至今了。
如果从历史集合类转换到新的框架类,主要差异之一在于所有的操作都和新类不同步。您可以往新
类中添加同步的实现,但您不能把它从旧的类中除去。
集合接口
第 2 页(共
8 页)
Collection 接口用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用
这一接口。这里是以统一建模语言(Unied Modeling Language(UML))表示法表示的
Collection 公有方法清单。
该接口支持如添加和除去等基本操作。设法除去一个元素时,如果这个元素存在,除去的仅仅是集
合中此元素的一个实例。
boolean add(Object element)
boolean remove(Object element)
Collection 接口还支持查询操作:
int size()
boolean isEmpty()
boolean contains(Object element)
Iterator iterator()
Iterator 接口
Collection 接口的 iterator() 方法返回一个 Iterator。Iterator 和您可能已经熟悉的
Enumeration 接口类似,我们将在 Enumeration 接口 中对 Enumeration 进行讨论。使用
Iterator 接口方法,您可以从头至尾遍历集合,并安全的从底层 Collection 中除去元素:
remove() 方法可由底层集合有选择的支持。当底层集合调用并支持该方法时,最近一次
next() 调用返回的元素就被除去。为演示这一点,用于常规 Collection 的 Iterator 接口
代码如下:
Collection collection = ...;
Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
Object element = iterator.next();
if (removalCheck(element)) {
iterator.remove();
}
}
剩余13页未读,继续阅读
资源评论
SZleoWang
- 粉丝: 116
- 资源: 188
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功