通過本章的學習,大家已知道標准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配套提供的聯機文檔做得非常好,可作為自己的一個絕佳起點使用。