Java Collection集合框架&Map總結
阿新 • • 發佈:2019-01-26
Java Collection集合框架&Map
Map介面
+Map介面(沒有重複的key,出現重複的key,則value會被覆蓋)
-HashMap類(除了“不同步”和“允許空的Key/Value”之外,與HashTable大致相同)
-LinkedHashMap(在HashMap的基礎上,能夠保證輸出的順序和輸入的相同)
-HashTable類(實現同步,執行緒安全,不允許空值,效率相對較低)
+SortedMap介面
-TreeMap類(底層用“紅黑樹”實現,保證元素有序)
+Collection介面 +List介面 -ArrayList類(陣列實現的List) -LinkedList類(雙鏈表實現的List,經常用作堆疊、佇列或者雙向佇列) -Vector類(陣列實現的List,支援執行緒同步) +Queue介面 -不常用 +Set介面 -HashSet類 -LinkedHashSet類(以連結串列維護元素插入順序) +SortedSet介面 -TreeSet類
1.Collection介面常用方法 add(),addAll(),clear(),equals(), size(),toArray(),isEmpty() Collection沒有get()方法,只能通過iterator()來遍歷元素 2.List介面自己在Collection的基礎上添加了indexOf()方法 3.LinkedList類常用方法: offer(E e):在列表尾部插入一個元素 offerFirst(E e):在列表front插入一個元素 peek():返回列表第一個元素(不刪除) peekFirst():返回列表第一個元素(列表為null,則返回null)(不刪除) peekLast():返回列表最後一個元素(同上) poll():返回並刪除第一個元素 pollFirst():與peekFirst類似 pollLast():返回並刪除最後一個元素 pop():用作棧時常用方法,返回棧頂元素 push():壓入棧 4.Collections類和Arrays類 Arrays類是一個專門用來運算元組的工具類,有一組static的方法,對陣列進行排序查詢等操作 equals(),fill(),sort(),binarySearch() Array類的length屬性,只能判斷array的容量,不能判斷其中真實存有多少元素 Example: int arr[] = {1,2,3} System.out.print(arr.length)//列印結果為3 int arr[] = new int[10] System.out.print(arr.length)//列印結果為10 Collections類似Arrays,針對集合的一個工具類,也提供一系列靜態方法
ArrayList和Vector的區別
* ArrayList在記憶體不夠時預設是擴充套件50% + 1個,Vector是預設擴充套件1倍 * vector支援indexOf(obj, start)方法,ArrayList不支援 * vector執行緒安全,系統開銷大
2.Map的遍歷方法
//第一種遍歷:推薦 Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(MapEntry<Integer,Integer> entry:Map.entrySet()){ int key =
//在for-each迴圈中遍歷keys或values Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(Integer key:Map.keySet()){ System.out.print(key); }
//使用迭代器iterator Map<Integer,Integer> map = new HashMap<Integer,Integer>(); Iterator<Map.Entry<Integer,Integer>> entries = map.entrySet().iterator(); while(entries.hashNext()){ Map.Entry<Integer,Integer> entry = entries.next(); int key = entry.getKey(); int value = entry.getValue(); }
//遍歷所有value Map<Integer,Integer> map = new HashMap<>(); for(Integer v : map.values()) { System.out.println("value= " + v); }