本章先認識,下面會針對每一個不同的集合特性做詳細說明。
集合框架概述
java集合框架包含的內容
集合框架是爲表示和操作集合而規定的一種統一的標準體系結構。集合框架都包含三大塊內容:對外的接口,接口的實現和對集合運算的算法。
Java集合框架中的兩大類接口:Collection和Map,其中,Collection又有兩個子接口:List 和Set。所以通常說java集合框架供有三大類接口:List,Set和Map。它們的共同點:都是集合接口,都可以用來存儲很多對象。它們的區別如下:
Collection接口存儲一組不唯一,無序的對象。
Set接口繼承Collection接口,存儲一組唯一,無序的對象。
List接口繼承Collection接口,存儲一組不唯一,有序的對象。
Map接口存儲一組成對的鍵-值對象,提供Key到value的映射。Key(鍵)不要求有序,不允許重複。Value同樣不要求有序,但允許重複。
Iterator接口是負責定義訪問和遍歷元素的接口。
List接口
實現List接口的常用類有ArrayList 和LinkedList。
LinkedList採用鏈表存儲方式,優點在於插入,刪除元素時效率比較高。它提供了額外的addFirst(),addLast(),removeFirst()和removeLast()等方法,可以在LinkedList的首部或尾部進行插入或刪除操作。
List接口中定義的各種常用方法
Map接口
HashMap集合類
Map接口存儲一組成對的鍵-值對象,提供key到value的映射,Map中的key不要求有序,不允許重複。Value同樣不要求有序,但允許重複。最常用的Map實現類是HashMap,它的存儲方式是哈希表。哈希表也稱爲散列表,是根據關鍵碼值(key,value)而直接進行訪問的數據結構。
Map常用方法
Hashtable 和 HashMap的異同
兩者主要區別如下:
Hashtable繼承自Dictionary類,而HashMap實現了Map接口。
Hashtable是線程安全的,HashMap重速度,輕安全,是線程非安全的,所以當運行到多線程環境中時,需要程序員自己管理線程的同步問題。
Hashtable不允許null值(key和value都不允許),HashMap允許null值(key和value都允許)
迭代器Iterator
Iterator爲集合而生,專門實現集合的遍歷。它隱藏了各種集合實現類內部細節,提供了遍歷集合的統一編程接口。
Collection接口的iterate()方法返回一個Iterator,然後通過Iterator接口的兩個方法即可方便地實現遍歷。
Boolean hasNext():判斷是否存在另一個可訪問的元素。
Object next() :返回要訪問的下一個元素。
Set keys = 集合對象.keySet(); //取出所有key的集合
Iterator it = keys.iterator() ; //獲取Iterator對象
While(it.hasNext()){
String key =(String)it.next(); //取出key
}
使用foreach語句遍歷
Set keys =dogMap.keySet(); //取出所有key的集合
For(Object key : keys){
Dog dog = (Dog)dogMap.get(key); //根據key取出對應的值
}
Map.Entry遍歷