第十三讲 容器框架一
计算机程序的主要用途是处理各类数据,而这些数据是有结构的,不是散乱的。几十年以前软件大师N. Wirth写道:程序=算法+数据结构。
我们在数据结构里面学到过,数据的组织方式,有数组、链表、树、图、字典等。我们现在着手探究一下Java里面提供的数据容器框架。
Java里面从JDK 1.2起引入容器框架,主要分成List、Set、Queue和Map这4类。List是有序、可重复的;Set是无序的、不可重复的;Queue代表一种队列;Map是具有映射关系的集合。这些也叫集合类,但是可能引起重名的混乱,我就沿袭大师的做法,把它们叫作容器框架。它们的特点都是保存对象集合并且是动态的,这样区别于数组。
图13-1说明了Java容器类框架。
图13-1 Java容器类框架示意图
从图13-1中可以看到,顶层就是Collection和Map两个接口。List、Set和Queue都是Collection的子接口。接口之下有抽象类,AbstractCollection、AbstrctList、AbstractSet、AbstractMap等。抽象类之下才是具体的实现类,如Vector,Stack,ArrayList,LinkedList,HashSet,TreeSet,HashMap,LinkedHashMap,TreeMap,Hashtable等。这个设计再