Java集合構架研究之一
|
摘要:
本文論述了Java容器類庫的產生、變化與發展,然而并沒有具體講解怎么使用這些類庫,試圖從其發展與變化的歷史中幫助Java學習者掌握Java的容器類庫。另外在本篇最后會討論在即將發布的代號為Tiger的J2SE1.5中加入的新特性之一:泛型,它將使容器的功能更加強大。
一、集合論引述
集合論是現代數學中重要的基礎理論。它的概念和方法已經滲透到代數、拓撲和分析等許多數學分支以及物理學和質點力學等一些自然科學部門,為這些學科提供了奠基的方法,改變了這些學科的面貌。計算機科學作為一門現代科學因其與數學的緣源,自然其中的許多概念也來自數學,集合是其中之一。如果說集合論的產生給數學注入了新的生機與活力,那么計算機科學中的集合概念給程序員的生活也注入了新的生機與活力。
1、什么是集合
很難給集合下一個精確的定義,通常情況下,把具有相同性質的一類東西,匯聚成一個整體,就可以稱為集合。比如,用Java編程的所有程序員,全體中國人等。通常集合有兩種表示法,一種是列舉法,比如集合A={1,2,3,4},另一種是性質描述法,比如集合B={X|0<X<100且X屬于整數}。集合論的奠基人康托爾在創建集合理論給出了許多公理和性質,這都成為后來集合在其它領域應用的基礎,本文并不是講述集合論的,所以如果你對集合論感興趣,可以參考相關書籍。
2、什么是集合框架
那么有了集合的概念,什么是集合框架呢?集合框架是為表示和操作集合而規定的一種統一的標準的體系結構。任何集合框架都包含三大塊內容:對外的接口、接口的實現和對集合運算的算法。
接口:即表示集合的抽象數據類型。接口提供了讓我們對集合中所表示的內容進行單獨操作的可能。
實現:也就是集合框架中接口的具體實現。實際它們就是那些可復用的數據結構。
算法:在一個實現了某個集合框架中的接口的對象身上完成某種有用的計算的方法,例如查找、排序等。這些算法通常是多態的,因為相同的方法可以在同一個接口被多個類實現時有不同的表現。事實上,算法是可復用的函數。
如果你學過C++,那C++中的標準模版庫(STL)你應該不陌生,它是眾所周知的集合框架的絕好例子。