Java日常學習之集合
Java集合類存放在java.util包中,是一個用來存放物件的容器。
注意:
①集合只能存放物件,不能放基本的資料型別。
Integer等即為物件
②集合存放的都是物件的參照,而非物件本身。
③集合可以存放不同型別,不限數量的資料型別。
適用環境:
當我們需要將一些相同結構的個體整合在一起時,就可以考慮使用集合了。
相似點:
陣列的缺點:
以下將不再複述他們的特徵
ArrayList
特性:
線性表中的順序表
實現長度可變陣列
特徵:
按索引遍歷元素和隨機存取速率快 新增和刪除難
LinkedList
特性:
線性雙向連結串列
遍歷和隨機存取元素效率低
特徵:
新增和刪除效率高 遍歷和存取效率低
常用指令
獲取元素 get(位置)
新增元素到指定位置 add(位置,值)
新增多個元素 addAll
遍歷輸出 toString
修改指定位置值 set(位置,值)
刪除 remove(位置)
綜述:
ArrayList 隨機存取多用
LinkedList 新增和刪除多,增加了對首尾的操作
HashSet
特性:
採用Hashtable儲存結構
特徵:
新增、查詢和刪除速度快
無序
hash 基於計算,直接計算到地址
步驟:①計算雜湊碼 ②計算儲存位置 ③存入指定位置
LinkedHashSet
特性:
採用雜湊儲存結構,同時使用連結串列維護次序
特徵:
有序
TreeSet
特性:
採用二元樹(紅黑樹)的儲存結構
特徵:
有序 查詢速度比List快(按內容查詢)
查詢速度沒有HashSet快
按內容查詢速度:線性表 > 樹 > 雜湊表
HashMap
特性:
key 無序 唯一 (Set)
Value 無序 不唯一 (Collection)
LinkedHashMap
特性:
底層結構是hash+連結串列
key 有序(新增順序) 唯一 LinkedHashSet
value 無序 不唯一 Collection
TreeMap
特性:
底層結構是紅黑樹
key 有序(自然順序) 唯一
value 無序 不唯一 Collection
常用指令
獲取相應元素的值 get("鍵值")
新增元素到指定位置 add(位置,值)
鍵值 keySet()
清除 clear()
Map遍歷
Set<Map.Entry<String,String>> entrySet = map.entrySet();
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while (it.hasNext()){
Entry<String,String> entry = it.next();
System.out.print(entry.getKey());
}
map中沒有迭代器所以要進行遍歷時,先得到所有的key-value組成的set,再進行遍歷set
entrySet()返回對映所包含的對映關係的Set集合(一個關係就是鍵值對)
泛型
可以規定其所加型別
例:ArrayList<Integer(或自定型別)> list = new ArrayList();
改善集合的安全性和方便性,無需考慮新增元素是否一致,加入或取出無需強轉
集合中的遍歷
for
foreach
Iterator(Map中不可用)
謝謝觀看!