1.集合是什么
集合就是面向對象可重用性的體現,一般地,我們把研究對象統稱為元素;把一些元素組成的總體叫做集合,也簡稱集。
2.集合元素的特征
(1)確定性:設A是一個給定的集合,x是某一個具體對象,則或者是A的元素,或者不是A的元素,兩種情況必有一種且只有一種成立. (2)互異性:一個給定集合中的元素,指屬於這個集合的互不相同的個體(對象),因此,同一集合中不應重復出現同一元素. (3)無序性:一般不考慮元素之間的順序,但在表示數列之類的特殊集合時,通常按照習慣的由小到大的數軸順序書寫
collection 集合 實現類
ArrayList 實現方法:數組實現 版本:1.2 時間:98年12月發布 輕量級(運行快) 線程不安全 (常用)
Vector 實現方法:數組實現 版本:1.0 時間:95年5月發布 重量級(運行慢) 線程安全
LinkedList 實現方法: 鏈表實現
數組:空間連續 查詢速度快 直接訪問下標 增加刪除慢 增刪需要將后面的數據向后移或向前移
鏈表:節點關聯 查詢速度慢 通過上一個去查找下一個 增加刪除快 鏈表增加直接將上一個指向新數據下一個也指向新數據
Vector實現類Stack 棧LIFO(Last In First Out)查詢少增刪多
3.如何用java實現一個棧
a.數組 b.LinkedList c.Stack類
用LinkedList,為什么不用Stack實現類呢 因為Stack繼承錯誤的繼承了Vector Vector提供了add方法,但是棧只能pop和push無法從中間插入,讓棧不夠安全。Stack繼承了Vector讓Statck存在很多不應該存在的方法。
1 //用java創建一個棧 2 public class AStack { 3 public static void main(String[] args) { 4 Stacks s = new Stacks(); 5 s.push("lin"); 6 s.push("hello"); 7 s.push("hou"); 8 s.push(123); 9 System.out.println(s.pop()); 10 System.out.println(s.pop()); 11 System.out.println(s.pop()); 12 System.out.println(s.pop()); 13 } 14 } 15 class Stacks{ 16 //變繼承復用為主核復用 17 private LinkedList list = new LinkedList(); 18 public void push(Object o){ 19 list.addFirst(o); 20 } 21 public Object pop(){ 22 Object o = list.removeFirst(); 23 return o; 24 } 25 }
Map集合
元素:key - value 對(鍵值對)
特點:key 內容唯一不可重復 key所對應的value是可重復的 無序
用法:通過key找value
例子:字典 單詞——解釋 網站 用戶名——密碼
主要方法:
1.put(Object k,Object v):把k-v這個鍵值對放入Map 若k已存在那么新v會替代舊v
2.get(Object k):返回Map中k對應的v
3.remove(Objeck k):刪除k所在的鍵值對
4.containsKey(Object k):判斷Map中是否有K存在
5.containsValue(Object v):判斷Map中是否有v存在
Map3種的遍歷
1.值遍歷
1 Collection c = map.values(); 2 Iterator i = c.iterator(); 3 while(i.hasNext()){ 4 System.out.println(i.next()); 5 }
2.鍵遍歷
1 Set s = map.keySet(); 2 Iterator i = s.iterator(); 3 while(i.hasNext()){ 4 Object k = i.next(); 5 Object v = map.get(k); 6 System.out.println(k+"+++"+v); 7 }
3.鍵值遍歷
Map.Entry對象,封裝了一個key和一個value
1 Set set = map.entrySet(); 2 Iterator i = set.iterator(); 3 while(i.hasNext()){ 4 Map.Entry me = (Map.Entry)i.next(); 5 System.out.println(me.getKey()); 6 System.out.println(me.getValue()); 7 }
實現類:
1.HashMap :1.2 允許用null作為key或者value
2.Hashtable :1.0 不允許null作為key或者value
3.Properties:Hashtable的子類 key和value都是String 一般用於配置文件的讀取
4.TreeMap:實現了SortcdMap(Map的子接口)自動對key排序
------------------------------------------------------------------------------------------------------------------------------------------------ 以上有寫的不對的歡迎大神指點錯誤,有想交流的請發郵件到我的郵箱1206835721@qq.com