更新时间:2021-03-31 22:00
类集(Collection)就是一个动态的对象数组。Java的类集框架使程序处理对象组的方法标准化。在Java 2出现之前,Java提供了一些专门的类如Dictionary、Vector、Stack和Properties去存储和操作对象组。尽管这些类非常有用,它们却缺少一个集中,统一的主题。因此例如说使用Vector的方法就会与使用Properties的方法不同。以前的专门的方法也没有被设计成易于扩展和能适应新的环境的形式。而类集解决了这些(以及其他的一些)问题。
【词语】:类集
【注音】:lèi jí ㄌㄟˋ ㄐㄧˊ
【释义】:
谓将相同或相关的汇集成一类。 晋 葛洪 《抱朴子·省烦》:“次其源流,总合其事,类集以相从。”《初刻拍案惊奇》卷四:“虽非真仙的派,却是专一除恶扶善,功行透了的,也就借此成仙,所以好事的类集他做《剑侠传》。”
类集框架被设计用于适应几个目的。首先,这种框架是高性能的。对基本类集(动态数组、链接表、树和散列表)的实现是高效率的。一般很少需要人工去对这些“数据引擎”编写代码(如果有的话)。第二点,框架必须允许不同类型的类集以相同的方式和高度互操作方式工作。第三点,类集必须是容易扩展和/或修改的。为了实现这一目标,类集框架被设计成包含一组标准的接口。对这些接口,提供了几个标准的实现工具(例如LinkedList、HashSet和TreeSet),通常就是这样使用的。为了方便起见,创建用于各种特殊目的的实现工具。一部分工具可以使自己的类集实现更加容易。最后,增加了允许将标准数组融合到类集框架中的机制。
算法(Algorithms)是类集机制的另一个重要部分。算法操作类集,它在Collections类中被定义为静态方法。因此它们可以被所有的类集所利用。每一个类集类不必实现它自己的方案,算法提供了一个处理类集的标准方法。
由类集框架创建的另一项是Iterator接口。一个迭代程序(iterator)提供了一个多用途的,标准化的方法,用于每次访问类集的一个元素。因此迭代程序提供了一种枚举类集内容(enumerating the contents of a collection)的方法。因为每一个类集都实现Iterator,所以通过由Iterator定义的方法,任一类集类的元素都能被访问到。因此,稍作修改,循环通过集合的程序代码也可以被用来循环通过列表。
除了类集之外,框架定义了几个映射接口和类。映射(Maps)存储键/值对。尽管映射在对象的正确使用上不是“类集”,但它们完全用类集集成。在类集框架的语言中,可以获得映射的类集“视图”(collection-view)。这个“视图”包含了从存储在类集中的映射得到的元素。因此,如果选择了一个映射,就可以将其当做一个类集来处理。
对于由java.util定义的原始类,类集机制被更新以便它们也能够集成到新的系统里。所以理解下面的说法是很重要的:尽管类集的增加改变了许多原始工具类的结构,但它却不会导致被抛弃。类集仅仅是提供了处理事情的一个更好的方法。
最后的一点:如果对C++比较熟悉的话,那么可以发现Java的类集技术与在C++中定义的标准模板库(STL)相似。在C++中叫做容器(container),而在Java中叫做类集。