java中的Collection框架表示的是集合,需要管理多個對象時可以使用Collection中的類,框架分為3層
1. 接口 2. 抽象類 3. 實際使用中的類
java集合有6大接口
1. 最基本的是Collection接口
2. 然后是Set,List,SortedSet接口,繼承於Collection接口
3. 兩外的Map和SortedMap接口,其實准確而言是映射,而不是集合
Collections是集合類的一個工具類,或者說是幫助類,不能實例化,封裝了一系列的static方法,可以直接拿來調用,還可以控制線程安全等操作。
List:鏈表,元素是有序排列的
Collection(接口)——List(接口,可以直接拿來使用)——Vector——Stack(棧,常用的數據結構)
Collection(接口)——List(接口,可以直接拿來使用)——ArrayList(其實就是一個動態的數組,可以方便查找)
Collection(接口)——List(接口,可以直接拿來使用)——LinkedList(是一個雙向的鏈表)
Stack<Integer> st = new Stack<Integer>();
st.push(int);
st.pop(); //返回棧頂並刪除元素
st.peak(); //返回棧頂元素,但是不刪除
st.isEmpty(); //判斷棧是否為空
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(int);
list.get(index); //返回某個index對應的值
list.size(); //返回鏈表的長度
Queue<Integer> q = new LinkedList<Integer>(); //java中queue是一個接口,因此需要其他實現接口的類來代替
q.offer(int); //近隊列
q.poll(); //出隊列
q.peek(); //隊列頭部數據
q.isEmpty(); //判斷隊列是否為空
Set:集合中的元素不允許重復,方法與Collection完全相同,接口基本一致
Collection(接口)——Set(接口)——HashSet(類)
Collection(接口)——Set(接口)——HashSet(類)——LinkedHashSet(類)
Collection(接口)——Set(接口)——SortedSet(接口)——TreeSet(排序類)
Set的實現其實基礎是Map(HashMap),元素不能重復,重復的話會自動覆蓋前面的對象
Map:每個元素包含兩個部分,鍵(Key)和值(Value),同一個Map中不允許使用相同的鍵,但可以只用相同的值
Map(接口)——HashMap(最常用,key值不允許重復,否則會被覆蓋。非synchronized的,隨着時間推移,元素次序可能會變,允許null鍵和null值)
Map(接口)——HashTable(比較過時,同步的)
Map(接口)——WeakHashMap
HashMap hm = new HashMap();
hm.containsKey(key);
hm.put(key,value);