一、集合的由來
通常,我們的Java程序需要根據程序運行時才知道創建了多少個對象。但若非程序運行,程序開發階段,我們根本不知道到底需要多少個數量的對象,甚至不知道它的準確類型。為了滿足這些常規的編程需要,我們要求能在任何時候,任何地點創建任意數量的對象,而這些對象用什么來容納呢?我們首先想到了數組,但是!數組只能存放同一類型的數據,而且其長度是固定的,那怎么辦了?集合便應運而生了。
二、集合是什么?
Java集合類存放在java.util包中,是一個用來存放對象的容器。
注意:
1.集合只能存放對象。比如你存入一個int型數據66放入集合中,其實它是自動轉換成Integer類后存入的,Java中每一種基本數據類型都有對應的引用類型。
2.集合存放的都是對象的引用,而非對象本身。所以我們稱集合中的對象就是集合中對象的引用。對象本身還是放在堆內存中。
3.集合可以存放不同類型,不限數量的數據類型。
三、Java集合框架
首先,我們來看一張圖
發現一個特點,上述所有的集合類,除了map系列的集合,即左邊的集合都實現了Iterator接口。
Iterator是一個用來遍歷集合中元素的接口,主要有hashNext(),next(),remove()三種方法。
它的子接口ListIterator在它的基礎上又添加了三種方法,分別是add(),previous(),hasPrevious()。
從圖中我們可以看到:
1.集合主要分為Collection和Map兩個接口。
2.Collection又分別被List和Set繼承。
3.List被AbstractList實現,然后分為3個子類,ArrayList,LinkList和VectorList。
4.Set被AbstractSet實現,又分為2個子類,HashSet和TreeSet。
5.Map被AbstractMap實現,又分為2個子類,HashMap和TreeMap。
6.Map被Hashtable實現。