14.JAVA编程思想——通用集合库
标准的Java 库提供了一些特别有用的集合,距完整意义的集合尚远。除此之外,象排序这样的算法根本没有提供支持。C++出色的一个地方就是它的库,特别是“标准模板库”(STL)提供了一套相当完整的集合,以及许多象排序和检索这样的算法,可以非常方便地对那些集合进行操作。针对这一现状,并以这个模型为基础,ObjectSpace 公司设计了Java 版本的“通用集合库”(从前叫作“Java通用库”,即JGL;但JGL 这个缩写形式侵犯了Sun 公司的版权——尽管本书仍然沿用这个简称)。这个库尽可能遵照STL 的设计(照顾到两种语言间的差异)。JGL 实现了许多功能,可满足对一个集合库的大多数
常规需求,它与C++的模板机制非常相似。JGL 包括相互链接起来的列表、设置、队列、映射、堆栈、序列以及反复器,它们的功能比Enumeration(枚举)强多了。同时提供了一套完整的算法,如检索和排序等。在某些方面,ObjectSpace 的设计也显得比Sun 的库设计方案“智能”一些。举个例子来说,JGL 集合中的方法不会进入final 状态,所以很容易继承和改写那些方法。
JGL 已包括到一些厂商发行的Java套件中,而且ObjectSpace 公司自己也允许所有用户免费使用JGL,包括商业性的使用。详细情况和软件下载可访问http://www.ObjectSpace.com。与JGL 配套提供的联机文档做得非常好,可作为自己的一个绝佳起点使用。