1、容器類將所有對象都按Object類型處理
一個容器可以放入任何對象,基本類型除外
基本類型應先放入數組,數組再放入容器中
2、對象數組保存的是引用,基本類型保存的是基本類型的值
class Weeble{ }
Weeble [] a= new Weeble[5];
int[] f= new int[5];
3、可在容器中使用包裝類,例如Interger,Double等存放基本類型
4、返回一個數組:
5、容器:List,Set, Map
Set,每個對象只存一份,Map是一種關聯數組,也只保存一份。
容器類都能自動調整容量
Collection。一組獨立的元素,如List必須保持順序,Set不能有重複元素
Map。一組鍵值對對象。
6、打印容器
Collection都可用add
Map都可用put
fill()方法,複製同一個對象來填充整個數組。
7、對象加入容器就丟失了類型信息。不要不同的類型
8、製作一個類型明確的ArrayList。
使其只接受和返回Mouse對象。
9、迭代器:遍歷和選擇序列中的對象
Iterator具有next(),hasnext(),remove()方法
因此不用操心容器中元素的數量了
10、容器分類
11、List
ArrayList隨機訪問快,插入刪除慢;LinkedList插入刪除快,隨機訪問慢
LinkedList製作棧:壓棧addFirst(),頂部getFirst(),出棧removeFirst()
LinkedList製作隊列:addFirst,removeLast
12、Set
Set具有與Collection完全一樣的接口,只是行爲不同,set不保存重複的元素。
set有特定的存儲順序
13、Map
如果不爲“鍵”覆蓋hashcode()和equals()方法,那麼使用散列的數據結構(HashSet,hashMap,...)就無法正確處理你的鍵
散列的價值在於使得查詢快速
查詢一個值首先計算散列碼,然後用散列碼查詢數組,數組裏保存着值的list。然後對list中的值使用equals()進行線性查詢
14、持有引用:
如果想持有某個對象的引用,以便以後訪問該對象,同時也允許內存耗盡時垃圾回收器回收,用Reference對象